Recherche fructueuse

Résolu
Signaler
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006
-
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006
-
Bonjour, voila je suis sur le projet d'un ptit logiciel simple et simpa
mais j'ai une ptite erreur que je n'arrive pas a résoudre ! Zone de
recherche avec la listbox a coté pour afficher les résultats mais
lorsque le mot cherché (le début) n'est pas trouvé dans la base de
donnée ca m'affiche une erreur (erreur 3021, pas d'enregistrement
courant) et je n'arrive pas a l'évité ! Donc si vous pouvez m'aider ce
sré super simpa :p merci ;)

-=NoViCeKiLLeR=-

10 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
essaye ceci :




Private Sub Command4_Click()



sql = "SELECT * FROM Table1 WHERE nom LIKE '" & Text6.Text & "*' ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

if rs.RecordCount <= 0 Then

msgbox "Mot non trouvé !"

exit sub

end if

List2.Clear

List3.Clear

List2.AddItem (rs.Fields("nom"))

List3.AddItem (rs.Fields("numero"))

rs.Close



End Sub

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Ben si tu met "SELECT preter, nom FROM Table1 WHERE preter ORDER BY nom", ta requête ne marchera pas, à moins que le champ preter soit un booleen (et encore, ca reste à tester !)



Si preter est un champ texte par exemple, et qu'il contient "prêté"
comme texte lorsque le film est prêté, la bonne requête sera :




"SELECT preter, nom FROM Table1 WHERE preter = 'prêté' ORDER BY nom"



DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
fais voir ton code, ce sera plus facile pour trouver.

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

Voila c'est mon code béta c'est le plus simple avec rien de modifier :



Private Sub Command4_Click()

sql = "SELECT * FROM Table1 WHERE nom LIKE '" & Text6.Text & "*' ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

List2.Clear

List3.Clear

List2.AddItem (rs.Fields("nom"))

List3.AddItem (rs.Fields("numero"))

rs.Close

End Sub



donc en fait quand le mot existe il me le trouve mais quand il ne
trouve pas le début j'aimerais qu'il me mette un message d'erreur dans
la list2 à la place du nom mais la c bien un message d'erreur mais qui
me ferme l'application xD !!



merci ;)

-=NoViCeKiLLeR=-
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

Merci ! J'avais essayé dans ce genre en comptant les résultat mais j'ai
pas pensée a une msgbox ! J'devais etre fatigué :p lol ! merci bocoup ;)

-=NoViCeKiLLeR=-
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

J'vais en profiter pour te montrer mon autre problème :



sql = "SELECT preter, nom FROM Table1 WHERE preter ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

List1.Clear

List1.AddItem (("------"))

For i = 1 To rs.RecordCount

List1.AddItem (rs.Fields("nom"))

List1.AddItem (rs.Fields("preter"))

List1.AddItem (("------"))

rs.MoveNext

Next

rs.Close


Voila, la sque je veux faire c'est d'afficher dans une listbox les
films prété donc j'ai pensé faire une requete à la base de donnée pour
prendre les nom de ceux qui sont prété et les afficher avec le nom et
celui a qui c'est prété mais là ca maffiche aussi ceux qui ne sont pas
prété ! j'ai tou de suite pensée a faire un compte de résultat et
d'aficher que si ya dé resultat dans préter mais en vain :/ !



merci ;)


-=NoViCeKiLLeR=-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Il faut indiquer la valeur de preter dans ta requete :



sql "SELECT preter, nom FROM Table1 WHERE preter" & valeurdepret & " ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

List1.Clear

List1.AddItem (("------"))

For i = 1 To rs.RecordCount

List1.AddItem (rs.Fields("nom"))

List1.AddItem (rs.Fields("preter"))

List1.AddItem (("------"))

rs.MoveNext

Next

rs.Close

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

J'vois pas ce que tu ve dire par indiquer la valeur de preter ! tu
pourrais expliquer un peu s'il te plait ? Qu'est ce que je met comme
valeur pour valeurpret ? merci

-=NoViCeKiLLeR=-
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

Bon j'y arrive pas ! Ya une commande select qui permet dafficher que
les cellules not null ? j'mets quand même sque j'ai essayé de faire :

sql = "SELECT preter FROM Table1"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

valeurpret = rs.Fields("preter")

sql "SELECT preter, nom FROM Table1 WHERE preter '" & valeurpret & "' ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

List1.Clear

List1.AddItem (("------"))

For i = 1 To rs.RecordCount

List1.AddItem (rs.Fields("nom"))

List1.AddItem (rs.Fields("preter"))

List1.AddItem (("------"))

rs.MoveNext

Next

rs.Close

J'ai eu un résultat avec ça, mais ca maffiche que les champs NULL enfin c'est bizarre sque j'ai fait ca ressemble pas trop a grand chose !!



merci ;)

-=NoViCeKiLLeR=-
Messages postés
64
Date d'inscription
dimanche 17 août 2003
Statut
Membre
Dernière intervention
23 juillet 2006

Re bonjour !

Pour ceux qui suivent le sujet, j'ai reussi a aboutir ! J'ai rajouté un
champ pret avec valeur numerique qui est de 1 lorsque c'est preter.
Donc je selectionne les noms (films et nom des personnes) ou pret = 1 !



sql "SELECT * FROM Table1 WHERE pret 1 ORDER BY nom"

Set rs = db.OpenRecordset(sql, dbOpenDynaset)

List1.Clear

List1.AddItem (("------"))

For i = 1 To rs.RecordCount

List1.AddItem (rs.Fields("nom"))

List1.AddItem (rs.Fields("preter"))

List1.AddItem (("------"))

rs.MoveNext

Next

rs.Close



Merci beaucoup DarkSidious, grace a sque tu m'as dit j'ai réfléchi
tourné 999 ca dans ma tête et j'ai abouti a un truc accessible a tous !
fallai juste y pensé ! enfin merci :p a++

-=NoViCeKiLLeR=-