Chercher dans une base de donnee access??

cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011 - 28 juil. 2011 à 12:01
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011 - 29 juil. 2011 à 18:30
salut
jai une base de donnee access que j'affiche en vb6. je veux programmer un bouton chercher qui permet justement chercher dans la base de donnee.Acet egard,je rencontre deux problemes.D'abord ca concerne la recherche d'un chiffre par exemple,jai une colonne 'NIscription',tu fais chercher le num '1'et ca te donne un seul resultat tandis qu'il ya dautres cases contenat le '1'! le code que jutilse est le suivant:
NomTable.MoveFirst
NomTable.FindFirst ("[NIscription] = " & textrecherche)
Comment faire alors pr afficher tous les resultats?
sinn jai un autre pb ,je ne parviens pas a programmer comment chercher une chaine de caracteres(par exemple je dois chercher un nom)

:) :D

22 réponses

4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 juil. 2011 à 14:19
Ton premier problème et tout ce qu'il y a de plus normal car tu fais FindFirst. Donc tu demande à ta recordeset de ce placer sur le premier qu'il trouve. Pour les autre tu dois utiliser findnext ou move next.

Pour mieux t'aider il faut que tu me montre tes ligne de connexion.
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
28 juil. 2011 à 14:47
svp comment utiliser findnext?


:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 juil. 2011 à 15:25
NomTable.movenext

Mais vraiment si tu veux que je t'aide poste tes ligne de connexion.
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
28 juil. 2011 à 15:52
voila comment jai fait la cnxion:
Public Sub affichergrille()
Dim a As Integer
MaTable.MoveLast
a = Pdt.RecordCount
grille.Rows = a + 1
Pdt.MoveFirst
For i = 1 To a
grille.Row = i
For j = 0 To 3
grille.Col = j
Select Case j
Case 0
grille.Text = MaTable!N°
Case 1
grille.Text = MaTable!Nom
Case 2
grille.Text = MaTable!Prenom
Case 3
grille.Text = MaTable!Adresse
End Select
Next
MaTable.MoveNext
Next
MaTable.MoveFirst
End Sub

grille etant le nom de la datagrid

:) :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 juil. 2011 à 16:08
Dis moi tu utilises un dataset et un recordeset ?
Car là je ne vois de ligne de connexion

Tu utlises des ADODB ou des DAO?
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
28 juil. 2011 à 16:15
jai juste insere lobjet datagrid de la boite a outils et jai fait ce ke jai cite c tt.
sinn jai aussi cela avnt:
Set BaseDonnee = OpenDatabase(App.Path & "\db1.mdb")
Set MaTable = BD1.OpenRecordset("NmFichier", dbOpenDynaset)

:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 juil. 2011 à 16:41
Voila c exactement cela que je voulais

Ta ligne

Set MaTable = BD1.OpenRecordset("NmFichier", dbOpenDynaset)

Tu peux la changer en fonction de ce que tu cherche. Par exemple :

Set MaTable BD1.OpenRecordset("SELECT * FROM " & NmFichier & " WHERE NIscription 1",dbOpenDynaset)

suivi de Matable.movenext va te permettre de lister tout les enregistrements ou NIscription = 1
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
28 juil. 2011 à 18:29
Merci.mais faisant cela,jai eu une erreur de compil:variable not defined;jai essaye de le declarer comme database ou recordset mais en vain(sinn erreur;type mismatch :p)


:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 09:44
Remet tout comme avant et fait comme cela

Set MaTable BaseDonnee.OpenRecordset("SELECT * FROM " & NmFichier & " WHERE NIscription 1",dbOpenDynaset)
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 11:19
j lai fait et on me dit erreur dans la syntaxe clause FROM :o
jai fait cela
Set MaTable BD.OpenRecordset("SELECT * FROM NmFichier WHERE NIscription1", dbOpenDynaset)
ca ne donne pas d'erreur,MAIS ca marche pas vrt!en effet,on me donne le mm resultat de recherche meme si je change la valeur cherchee(que je fais entrer dans un TextBox)(et le resultat na pas NIscription=1 ou celui ke je fais entrer!!).
tavais dit "suivi de Matable.movenext va te permettre de lister tout les enregistrements ou NIscription = 1"
mais le NIscription recherche c'est a lutilisateur de choisir!



:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 13:30
Sorry de te répondre aussi tard j'avais des obligation.
Je pense qu'il faut reprendre depuis le début(ou presque).

Quelle valeur veux-tu trouver?
Dans quelle champs ?
Ce champs est-il un champs text ou numérique?
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 13:37
je veux deux champs,l'un numérique et l'autre un text.Par exemple un NIscription et un nom(chacun a part, l'utilisateur devra choisir koi chercher).Mais contentons nous de traiter en premier lieu le chaps numerique ;)
la valeur ke je vx chercher n'est pas précise,c'est l'utilisateur qui va la choisir en fonction de ses besoin ( c pr cela ke jai cree un textBox ou l'utilisateur mettra la valeur voulue)

:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 14:40
Tu dis "c'est l'utilisateur qui va la choisir en fonction de ses besoin " dans qu'elle champ de ta table va tu cherché ? De k l type est-il
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 14:44
il va chercher le NIscriptio,ce qu'il va choisir c'est le NIscription ou une partie de lui(par ex il peu ecrir dans le textbox 1 ou 2 ou 564,tu vois?)
:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 14:53
Non je ne vois pas NIscriptio c un champs de ta table ?
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 14:54
oui, c ca


:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 15:03
Et ce champs et de qu'elle type? Texte ou numérique?
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 15:04
numerique


:) :D
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 juil. 2011 à 15:16
si tu fais
Set BaseDonnee = OpenDatabase(App.Path & "\db1.mdb") 
Set MaTable BaseDonnee.OpenRecordset("SELECT * FROM " & NmFichier & " WHERE NIscription 1",dbOpenDynaset) 

msgbox MaTable.Fields("NIscription").Value 


Tu as une valeur correcte ou pas ?
0
cs_hanaaz Messages postés 23 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
29 juil. 2011 à 15:38
faisant cela on me donne erreur de syntaxe dans la clause FROM.
jai remplace ta ligne:Set MaTable BaseDonnee.OpenRecordset("SELECT * FROM " & NmFichier & " WHERE NIscription 1",dbOpenDynaset)
par
Set MaTable BD.OpenRecordset("SELECT * FROM NmFichier WHERE NIscription1", dbOpenDynaset)
pas derreur de syntaxe mais ya tt simplment un msg qui affiche 1!et un seul resultat dans la table(dont le NIscription ne contient ni 1 ni un nmbre ke j vx chercher)
:) :D
0
Rejoignez-nous