Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : base de donée et recherche multi-critere [ Archives Visual Basic / Bases de données ] (guth42)

vendredi 12 septembre 2003 à 15:38:49 | base de donée et recherche multi-critere

guth42

Je suis débutant en base de donnée et je souhaite faire une recherche multi-critère a partir de vb dans une base.

Pour le moment j'utilise une base Access et ADO, et je renvois le resultat dans une listview. Le problème c'est que je n'arrive à faire des recherche qu'en mono-critère, avec un code du style :
BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"

j'ai fait des essais avec find mais j'ai pas réussi à les faire tourner.

je souhaiterais faire une truc du genre :
BD_recordset.Filter = champ1 & " LIKE '" & txt_recherche1 & "*'" AND BD_recordset.Filter = champ2 & " LIKE '" & txt_recherche2 & "*'"

Est-ce que je suis parti sur une bonne voie? Quelqu'un peut-il m'aider ?
J'ai recherché dans les sources et les forums de CodesSourceS mais sans résultat :/

Je commence un peu à dé-espèrer ...

Si il y a quelqu'un qui à une idée, une source.....

Merci d'avance

vendredi 12 septembre 2003 à 16:13:25 | Re : base de donée et recherche multi-critere

Ickik


Bonjour,
data.recordsource = "SELECT '" & "champ_1, champ_2,...... ,champ_n" & "' FROM '" & "table" & "' where " & "champ_x" & "' Like '" & " recherche" & "' and '" & " champ_y" & " like '" & "recherche2 & "'"
c'est ce que tu veux?
A+

-------------------------------
Réponse au message :
-------------------------------

> Je suis débutant en base de donnée et je souhaite faire une recherche multi-critère a partir de vb dans une base.
>
> Pour le moment j'utilise une base Access et ADO, et je renvois le resultat dans une listview. Le problème c'est que je n'arrive à faire des recherche qu'en mono-critère, avec un code du style :
> BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"
>
> j'ai fait des essais avec find mais j'ai pas réussi à les faire tourner.
>
> je souhaiterais faire une truc du genre :
> BD_recordset.Filter = champ1 & " LIKE '" & txt_recherche1 & "*'" AND BD_recordset.Filter = champ2 & " LIKE '" & txt_recherche2 & "*'"
>
> Est-ce que je suis parti sur une bonne voie? Quelqu'un peut-il m'aider ?
> J'ai recherché dans les sources et les forums de CodesSourceS mais sans résultat :/
>
> Je commence un peu à dé-espèrer ...
>
> Si il y a quelqu'un qui à une idée, une source.....
>
> Merci d'avance

vendredi 12 septembre 2003 à 16:42:16 | Re : base de donée et recherche multi-critere

guth42

je n'arrive pas a comprendre comment fonctionne ton code, je précise :

'mon code :

Option Explicit

Public public_BD As String
Public private_BD As String
Public BD As ADODB.Connection
Public commandeADO As New ADODB.Command ' Commande base de données
Public BD_recordset As New ADODB.Recordset ' Résultat de la commande

Public Function Connect()
FileCopy public_BD, private_BD
Set BD = New ADODB.Connection 'Connection base de données
BD.Provider = "Microsoft.jet.OLEDB.4.0"
BD.ConnectionString = private_BD
BD.Open
'-------------- Create a Command --------------
Set commandeADO = New ADODB.Command
commandeADO.CommandText = "gestion" ' table in the database
commandeADO.CommandType = adCmdTable
commandeADO.ActiveConnection = BD
'--------------- Create a Recordset ------------
Set BD_recordset = New ADODB.Recordset
BD_recordset.ActiveConnection = BD
Set BD_recordset.Source = commandeADO

BD_recordset.CursorLocation = adUseClient
BD_recordset.CursorType = adOpenKeyset
BD_recordset.LockType = adLockOptimistic
BD_recordset.Open
BD_recordset.Sort = start_sort
End Function

'et quand je veux faire une recherche :
BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"
While (Not BD_recordset.EOF)
replace_null_by_space
If BD_recordset.RecordCount <> 0 Then
'mise a jour de la listview
maj_txt_apres_recherche str_search
End If
If BD_recordset.EOF = False Then
BD_recordset.MoveNext
end if
Wend

et ce que je cherche c'est faire une recherche des entrées de la base avec txt1 dans champ1 et txt2 dans champ2
ex:
base :
nom prenom adresse
dupont jean ici
dupont paul la
duran jean la-bas

et avec comme resultat de recherche pour nom=dupont prenom=jean :
"1 entrée trouvée : nom : dupont, prenom : jean, adresse : ici"


voila j'espère que c'est plus clair ...
(je continu a recherche pour comprendre ton code...)


-------------------------------
Réponse au message :
-------------------------------

>
> Bonjour,
> data.recordsource = "SELECT '" & "champ_1, champ_2,...... ,champ_n" & "' FROM '" & "table" & "' where " & "champ_x" & "' Like '" & " recherche" & "' and '" & " champ_y" & " like '" & "recherche2 & "'"
> c'est ce que tu veux?
> A+
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je suis débutant en base de donnée et je souhaite faire une recherche multi-critère a partir de vb dans une base.
> >
> > Pour le moment j'utilise une base Access et ADO, et je renvois le resultat dans une listview. Le problème c'est que je n'arrive à faire des recherche qu'en mono-critère, avec un code du style :
> > BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"
> >
> > j'ai fait des essais avec find mais j'ai pas réussi à les faire tourner.
> >
> > je souhaiterais faire une truc du genre :
> > BD_recordset.Filter = champ1 & " LIKE '" & txt_recherche1 & "*'" AND BD_recordset.Filter = champ2 & " LIKE '" & txt_recherche2 & "*'"
> >
> > Est-ce que je suis parti sur une bonne voie? Quelqu'un peut-il m'aider ?
> > J'ai recherché dans les sources et les forums de CodesSourceS mais sans résultat :/
> >
> > Je commence un peu à dé-espèrer ...
> >
> > Si il y a quelqu'un qui à une idée, une source.....
> >
> > Merci d'avance
>

lundi 15 septembre 2003 à 11:52:58 | Re : base de donée et recherche multi-critere

Ickik

Bonjour,
pour faire une recherche dans une base access utilise le langage sql : d'ou le SELECT au debut.
SELECT champ_1, champs2, .... LIKE txt_rechercche
c'est juste tu es sur la bonne voie, mais je voulais que tu fasses attention à la simple cote (') quand tu fais une concatenation avec une variable.
A+

-------------------------------
Réponse au message :
-------------------------------

> je n'arrive pas a comprendre comment fonctionne ton code, je précise :
>
> 'mon code :
>
> Option Explicit
>
> Public public_BD As String
> Public private_BD As String
> Public BD As ADODB.Connection
> Public commandeADO As New ADODB.Command ' Commande base de données
> Public BD_recordset As New ADODB.Recordset ' Résultat de la commande
>
> Public Function Connect()
> FileCopy public_BD, private_BD
> Set BD = New ADODB.Connection 'Connection base de données
> BD.Provider = "Microsoft.jet.OLEDB.4.0"
> BD.ConnectionString = private_BD
> BD.Open
> '-------------- Create a Command --------------
> Set commandeADO = New ADODB.Command
> commandeADO.CommandText = "gestion" ' table in the database
> commandeADO.CommandType = adCmdTable
> commandeADO.ActiveConnection = BD
> '--------------- Create a Recordset ------------
> Set BD_recordset = New ADODB.Recordset
> BD_recordset.ActiveConnection = BD
> Set BD_recordset.Source = commandeADO
>
> BD_recordset.CursorLocation = adUseClient
> BD_recordset.CursorType = adOpenKeyset
> BD_recordset.LockType = adLockOptimistic
> BD_recordset.Open
> BD_recordset.Sort = start_sort
> End Function
>
> 'et quand je veux faire une recherche :
> BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"
> While (Not BD_recordset.EOF)
> replace_null_by_space
> If BD_recordset.RecordCount <> 0 Then
> 'mise a jour de la listview
> maj_txt_apres_recherche str_search
> End If
> If BD_recordset.EOF = False Then
> BD_recordset.MoveNext
> end if
> Wend
>
> et ce que je cherche c'est faire une recherche des entrées de la base avec txt1 dans champ1 et txt2 dans champ2
> ex:
> base :
> nom prenom adresse
> dupont jean ici
> dupont paul la
> duran jean la-bas
>
> et avec comme resultat de recherche pour nom=dupont prenom=jean :
> "1 entrée trouvée : nom : dupont, prenom : jean, adresse : ici"
>
>
> voila j'espère que c'est plus clair ...
> (je continu a recherche pour comprendre ton code...)
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Bonjour,
> > data.recordsource = "SELECT '" & "champ_1, champ_2,...... ,champ_n" & "' FROM '" & "table" & "' where " & "champ_x" & "' Like '" & " recherche" & "' and '" & " champ_y" & " like '" & "recherche2 & "'"
> > c'est ce que tu veux?
> > A+
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Je suis débutant en base de donnée et je souhaite faire une recherche multi-critère a partir de vb dans une base.
> > >
> > > Pour le moment j'utilise une base Access et ADO, et je renvois le resultat dans une listview. Le problème c'est que je n'arrive à faire des recherche qu'en mono-critère, avec un code du style :
> > > BD_recordset.Filter = champ & " LIKE '" & txt_recherche & "*'"
> > >
> > > j'ai fait des essais avec find mais j'ai pas réussi à les faire tourner.
> > >
> > > je souhaiterais faire une truc du genre :
> > > BD_recordset.Filter = champ1 & " LIKE '" & txt_recherche1 & "*'" AND BD_recordset.Filter = champ2 & " LIKE '" & txt_recherche2 & "*'"
> > >
> > > Est-ce que je suis parti sur une bonne voie? Quelqu'un peut-il m'aider ?
> > > J'ai recherché dans les sources et les forums de CodesSourceS mais sans résultat :/
> > >
> > > Je commence un peu à dé-espèrer ...
> > >
> > > Si il y a quelqu'un qui à une idée, une source.....
> > >
> > > Merci d'avance
> >
>



Cette discussion est classé dans : base, bd, recordset, recherche, multi


Répondre à ce message

Sujets en rapport avec ce message

recherche base de données access objet data [ par paladin ] Bonjour, J'ai une base de données tres simple en utilisant l'objet data.Je voudrais pouvoir faire une recherche sur une partie d'un champs ou le debut quel type d'1 champ d'1 bd [ par neo3015 ] y a til moyen de savoir avec du code vba sous access 2000 le type (numeric, string, ...) d'un champ de la base de données courante...je sais qu'il exi Recherche dans une base de données [ par stockley81 ] G une base de données qui contient un champs correspondant à une date (jj/mm/aaaa). J'aimerai récupérer (dans un but d'affichage) les données comprise ajout dans une base ?! pb ! [ par minipod ] Je cherche à ajouter un enregistrement dans une base Access à l'aide d'ADO !Voici mon code:With Adodc5.Recordset.AddNew.Recordset.Fields("nomcolp") = ajout dans une base ?! pb ! [ par minipod ] Je cherche à ajouter un enregistrement dans une base Access à l'aide d'ADO !Voici mon code:With Adodc5.Recordset.AddNew.Recordset.Fields("nomcolp") = SVP sauver mon stage (pb de base de donnée) [ par pepeveve ] (une fois entree les information (nom, prenom, age a partir d'un textbox) dans un base de donnee (b2d)Ce que j'aimerai faire:--trouver un nom ou preno Petit Programme avec un ADODC [ par pepeveve ] BESOIN D'un PETIT COUP DE POUCEVoila, g un Adodc et une DataGrid, avec comme champ a rentrer Nom Prenom Age (grace a des textBox). J'aimerai pouvoir _ADO + multi-utilisateur !! [ par manoloelfanjo ] Bonjour, Voici ma kestion apres 2 jours de recherche en vain :Avant, avec DAO, on pouvait ecrire :RecordSet.LocksEdit pour bloquer un enregistrement e base de donnée access [ par GhnombX ] SAlut, je débute en base de données access, dabord, jutilise "Microsoft Ado Data Control 6.0"jai un code style :Dim BD As ConnectionDim rsEtudiants As vb access [ par nico57000 ] bonjour, je suis en train de realiser une appli client/serveur en VB, et en fait j'arrive a lire des données sur la base, a les modifier, mais j'arriv


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.