[VB6] comment rechercher un champ dans une base de données access

comment rechercher un champ dans une base de données access [VB6] - VB/VBA/VBS - Programmation

Marsh Posté le 12-05-2002 à 00:29:52    

Salut,  
 
J'essaye de créer une petite aplication vb qui permet de gerer une liste de jeux avec access. je n'arrive pas a rechercher un champ.La personne doit entrer le titre du jeux dans une textbox et c'est avec son contenu que je doit faire la recherche .
 
     
 
Ps: Je ne suis pas encore habituée aux base de données alors soyer pas trop raide. :bounce:

Reply

Marsh Posté le 12-05-2002 à 00:29:52   

Reply

Marsh Posté le 12-05-2002 à 12:51:47    

t'utilises koi pour te connecter ? DAO ou ADO ?

Reply

Marsh Posté le 12-05-2002 à 13:24:41    

De toute façon, la requête sera la suivante, dans le cas ou tu stockes le titre de ton jeu dans le champ "TitreJeu" de ta bdd :
 
SQL="SELECT * FROM Jeux WHERE TitreJeu LIKE '*" & TextBox1.Text & "*'"

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 12-05-2002 à 13:25:35--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-05-2002 à 19:35:58    

Ça marche pas... la description de mon jeu ne s'affiche pas,c'est comme si il ne voyais pas que je fait une recherche.  
 
voici ce que j'ai écris :  
 
Private Sub cmdrechercher_Click()
 
      frmprincipale.adoliste.RecordSource = "SELECT * FROM tblliste WHERE fldtitre LIKE '*" & txttitrerech.Text & "*'"
      frmprincipale.show
 
End Sub
 
ps : j'ai deux feuille frmrechercher (ou je fait la recherche)et frmprincipale ( ou les infos du jeu sont afficher)
 
  :heink:

Reply

Marsh Posté le 12-05-2002 à 21:03:55    

"adoliste", c'est quoi comme controle ?
 
V-Ro> "passion : informatique" selon ton profil ! C'est plutot rare pour une fille, surtout quand la passion est la prog  :)  
 
Bienvenue dans ce forum, en espérant que tu posteras souvent  :)  :hello:  
 
Qui a dit que j'étais en chaleur  :D

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 12-05-2002 à 21:08:42--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-05-2002 à 23:11:19    

adoliste c mon controle ADO :)
 
merci pour le mot de bienvenue :)

Reply

Marsh Posté le 12-05-2002 à 23:33:58    

Tu as déja une erreur :
 
1 - Toujours faire un refresh de ton controle après avoir initialisé sa RecordSource :
 

Citation :

Private Sub cmdrechercher_Click()  
 
     frmprincipale.adoliste.RecordSource = "SELECT * FROM tblliste WHERE fldtitre LIKE '*" & txttitrerech.Text & "*'"  
     frmprincipale.adoliste.Refresh
     frmprincipale.show  
 
End Sub


 
Ensuite, dans quoi affiches tu tes données ? Le controle ADO ne te permet de gérer que la connection à la base, et pas de les afficher. Tu dois pour ceci ajouter un controle à ta form pour afficher tes données.
 
Enfin, la ConnectionString de ton contrôle est elle correcte ? Utilises tu le bon Provider (Access 2000 = Microsoft Jet 4.0)
 
Exemple de code qui utilise un controle ADO, et qui affiche le nom du jeu dans un TextBox (Text1). Je suppose que tu utilises une base Access 2000:
 
 
Private Sub Form_Load()
   Dim Chemin As String
   Path = "C:\Jeux.mdb"
   With Adoliste
      .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Persist Security Info=False;" & _
      "Data Source=" & Chemin & _
      "; Mode=Read|Write"
      .RecordSource = "SELECT fldtitre FROM tblliste WHERE fldtitre LIKE '*" & txttitrerech.Text & "*'"
      .Refresh
   End With
   
   With Text1
      .DataField = "fldtitre"
      Set .DataSource = adoliste
   End With
End Sub
 
J'ai pondu ce code à l'arrache sans tester, mais normalement le nom du jeu devrait apparaitre dans le TextBox.
 
A+

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 12-05-2002 à 23:34:59--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2002 à 01:34:11    

J'utilise access 97 ...
 
voici ce que jai compris et essayer :)  
 
Private Sub cmdrechercher_Click()
       frmprincipale.adoliste.RecordSource = _
              "SELECT * FROM tblliste WHERE fldtitre LIKE '*" & txttitrerech.Text & "*'"
       frmprincipale.adoliste.Refresh
       With txttitrerech
            .DataField = "fldtitre"
            Set .DataSource = frmprincipale.adoliste
       End With
       frmprincipale.Show
End Sub
 
resultat :
il y a des case blanche dans mes label
 
(les informations  du jeu sont afficher dans des labels sur la feuille frmprincipale ... )
 
bye  :hello: :)

Reply

Marsh Posté le 13-05-2002 à 07:28:49    

tiens j'aurais mis % moi comme caractere generique ...

Reply

Marsh Posté le 13-05-2002 à 18:02:27    

Un % ... où et pourquoi ?

Reply

Marsh Posté le 13-05-2002 à 18:02:27   

Reply

Marsh Posté le 13-05-2002 à 18:19:40    

Citation :

LIKE '*" & TextBox1.Text & "*'"  


 
les étoiles je vois pas trop a koi ca sert
si tu veux un caractere generique pour ta recherche, c %

Reply

Marsh Posté le 13-05-2002 à 18:24:48    

Si tu utilises Access 97, alors le provider est "Microsoft.Jet.OLEDB.3.5".
 
As tu essayé l'exemple que je t'ai fourni ? Dans cet exemple, remplace "Microsoft.Jet.OLEDB.4.0" par "Microsoft.Jet.OLEDB.3.5"
 
La propriété ConnectionString est très importante, sinon tu ne pourras pas te connecter à ta base.
 
Essaye l'exemple que je t'ai donné, remplace la variable Chemin par le chemin d'accès à ta base. Normalement, tout devrait fonctionner sans pb. La seule raison qui fait que ça ne fonctionne pas est que ton contrôle ADO est mal configuré.
 
HappyHarry> j'ai tjs mis des "*" et ça a toujours marché. Il est possible que seul Jet n'accepte ces jokers.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2002 à 18:25:33    

Harkonnen > et moi toujours des '%' paske c standars SQL  :)

Reply

Marsh Posté le 14-05-2002 à 01:59:45    

ok ok  
pas de chicane les gars chu pas la pour jouer la maman  
 
lol :)
 
merci du coup de main je t'en reparle  
 
bye :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed