Recherche fructueuse

Résolu
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006 - 6 févr. 2005 à 04:50
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006 - 8 févr. 2005 à 19:10
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 févr. 2005 à 15:16
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 févr. 2005 à 16:38
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 févr. 2005 à 06:35
fais voir ton code, ce sera plus facile pour trouver.

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
0
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
6 févr. 2005 à 15:06
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=-
0

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

Posez votre question
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
6 févr. 2005 à 15:25
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=-
0
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
6 févr. 2005 à 15:31
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=-
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 févr. 2005 à 16:14
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
0
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
6 févr. 2005 à 16:23
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=-
0
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
6 févr. 2005 à 19:44
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=-
0
novicekiller Messages postés 64 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 23 juillet 2006
8 févr. 2005 à 19:10
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=-
0