spydermanman
Messages postés3Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention19 avril 2005
-
18 avril 2005 à 18:00
spydermanman
Messages postés3Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention19 avril 2005
-
19 avril 2005 à 12:14
Bonsoir
j'essaye depuis un moment de faire des recherches multiples avec ado control.
Je ni parviens pas
J'utilise ce bout de code que j'ai trouve sur cs mais il ne me sert que pour 1 critere uniquement, pouvez vous m'aider.
Adodc1.Recordset.Filter = "SegApell LIKE '" & Trim(Txtcdap.Text) & "*'"
le fait est que j'essaye que le dbgrid me montre uniquement les recordsets qui on exactement les 2 criteres.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 18 avril 2005 à 19:28
Salut
Avec si peu d'info, ça va être dur de te répondre, mais ce que tu as écrit est correct :
Il te sélectionnera tous les enregistrements dont le champ "SegApell" commence par le texte contenu dans txtCdap.
Commence parce qu'il n'y a pas d'étoile au début de chaine (sinon --> LIKE '*gnagnagna*')
De plus, je pense que ta recherche dépend les min/maj (dépend de la DB, MySQL n'est pas sensible, alors que Sybase l'est) : Si tu veux que la recherche soit valable aussi bien en majuscule qu'en minuscule :
"Upper(SegApell) LIKE '" & UCase(Trim(Txtcdap.Text)) & "*'"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
AdilELHASSOUNI
Messages postés145Date d'inscriptionvendredi 11 janvier 2002StatutMembreDernière intervention19 juin 20071 18 avril 2005 à 21:26
Je crois si j'ai bien compris la question que spydermanman veut un filtre avec deux criteres.
Si c'est le cas il faut employer une condition composee.
AdoDc.Recordset.Filter = " Champ1 Like '" & val1 "*' AND Champ2 Like '" & val2 "*' "
Sinon explique toi.
bonne Chance
spydermanman
Messages postés3Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention19 avril 2005 18 avril 2005 à 22:07
excusez moi ke me suis mal expliqué
j'ai une table avec 65000 personnes dont je veux les rechercher par les 2 noms
donc je veux ecrire dans un textbox le premier nom et dans un autre textbox le 2eme nom, la fonction doit me filtrer la base de donneés en premier temps par le premier nom et apres me re-filtre ce qu'il reste de la base en recherchant par l'autre nom.
Et fait il faut que quand j'ecrive les deux noms il me resten quelques lignes dans le datagrid pour selecionner ma personne recherché.
Je pense que je doit le faire en faisant une recherche multicritere masi si quelqu'un connait une autre maniere.....
au respect AdilELHASSOUNI j'ai essayé ta condition mais ça marche pas.
Adodc1.Recordset.Filter = "SegApell LIKE '" & Trim(Txtcdap.Text) '"*' and "PriApell like '" & trim(txtprdp.text) '"*'
AdilELHASSOUNI
Messages postés145Date d'inscriptionvendredi 11 janvier 2002StatutMembreDernière intervention19 juin 20071 19 avril 2005 à 10:26
ta condition est incorrecte :
"SegApell LIKE '" & Trim(Txtcdap.Text) '"*' and "PriApell like '" & trim(txtprdp.text) '"*'
d'autant que tu es entrain de dire que tu veux comparer avec le nom
donc pourquoi la premiere fois tu utilises SegApell et la seconde PriApell
Essaye :
"SegApell LIKE '" & Trim(Txtcdap.Text) & "*' and SegApell like '" & trim(txtprdp.text) & "*'"
Donne moi de tes nouvelles
Vous n’avez pas trouvé la réponse que vous recherchez ?
spydermanman
Messages postés3Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention19 avril 2005 19 avril 2005 à 12:14
Merci de ta reponse AdilELHASSOUNI.
J'ai essaye ta condition est elle marche bien, mais c'est pas exactement je que je voulais, mais j'ai modifie ta condition est la oui elle marche parfait.
"PriApell LIKE '" & Trim(Txtcdap.Text) & "*' and SegApell like '" & Trim(Txtprdp.Text) & "*'"
de cette maniere la condition me recherche sur un champ de la base de donneés le premier nom et la seconde condition me recherche le second champ avec le 2eme nom.