Requete de recherche

alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016 - 3 oct. 2013 à 00:04
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016 - 3 oct. 2013 à 18:48
Bonjour,
Je me sert de ce code pour faire une requete de recherche:
RS.Open "select * from table1 where nom like '%" & Text1.Text & "%' And prenom like '%" & Text2.Text & "%'", DB, adOpenStatic, adLockOptimistic

Mon probleme est : supposont j'ai deux noms: 'al' et 'albert'
si je veux chercher 'al' le code me recupère 'albert' au lieu de 'al'
Merci de m'aider à trouver le bon code

6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
Modifié par jordane45 le 3/10/2013 à 00:09
Bonsoir
Le % est un caractère jocker.
Pour ton cas..Ne met que celui du debut...
Ou n'en met pas du tout.
Ou si tu veux faire une recherche stricte remplace like par =
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
3 oct. 2013 à 00:50
Merci jordane de votre réponse
j'ai supprimé le % le meme prbleme
je met le (= ) j'obtiens le message (aucun nom trouvé)
merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 oct. 2013 à 01:26
Imaginons que vous ayez la liste des noms suivants :
al
ali
albert
pascal

si vous recherchez (avec like) la chose suivante : '%al%'
vous obtiendrez tous les noms.

Si vous faites : '%al'
vous aurez tous les mots finissant par "al"

Si vous faites : 'al%'
vous aurez tous les mots commençant par "al"

Si vous faites une recherche avec le signe égal => ='al'
vous aurez tous les mots commençant par "al" vous n'aurez QUE 'al'.

(avec le signe = ne mettez pas les % )

regarder ici :
http://sqlpro.developpez.com/cours/sqlaz/select/#L3.4


0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/10/2013 à 06:48
Bonjour,
Remplace tes % par * si tu utilises l'opérateur Like
si tu cherches le nom exact, ne pas utiliser Like, mais = (comme dit par jurdane). Mais dans ce cas : pas de joker à mettre, bien évidemment
0

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

Posez votre question
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
3 oct. 2013 à 08:39
Voici le code apres l'utilisation de (=).
Mais malheureusement le résultat est nul.
(aucun nom trouvé) Pourtant je suis certaint que le nom recherché existe dans la bd.

RS.Open "select * from table1" & _
" where nom = '" & Text1.Text & "' " & _
" and prenom = '" & Text2.Text & "'", _
DB, adOpenDynamic, adLockOptimistic
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 oct. 2013 à 08:56
Bonjour,
Si tu affiches la valeur de ta requêtes
Msgbox "select * from table1 where nom = '" & Text1.Text & "' and prenom = '" & Text2.Text &    
 "'"

Est ce que c'est conforme à ce que tu cherches ?

Peux tu tester cette vrequete retournee par ce msgbox directement dans ta bdd ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 oct. 2013 à 09:02
vérifier également qu'aucun des deux champs concernés ne contient un espace, voire un caractère non imprimable et/ou non visible. "Albert " ou " Albert", par exemple , ne sont pas "Albert"
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
3 oct. 2013 à 18:48
Merci à vous ucfoutu et jordane45 de votre souci
J'ai testé la requete par la msgbox comme vous m'avez demandé et et j'ai pu voir le nom recherché dans le msgbox.
J'ai aussi vérifié les champs et tout est dans les régles.
Je me sert du méme code pour l'enregistrement des records et ça marche bien mais pour la recherche il ne marche plus.
merci
0
Rejoignez-nous