Recherche Multicritère Access 2007

Fermé
MorkDark Messages postés 1 Date d'inscription samedi 5 septembre 2015 Statut Membre Dernière intervention 5 septembre 2015 - 5 sept. 2015 à 13:30
 castours - 11 sept. 2015 à 22:54
Bonjour,

Es ce qu'un expert Access pourrait me donner un petit coup de main pour un projet avec une recherche multicritère ?

1) Je possède 3 tables : Facture / Client/ Relevé
Les 3 tables sont montées de la même façon en mode création :

Clé primaire : nom de camp : code, type de donné :NuméroAuto. Suivi de 5 nom de camp en type texte : Source / Problème / table/ colonne /Solution.
Par exemple ma table Facture présente donc plusieurs source (Client / Fournisseur /... ), avec donc des problème similaire mais des solution différente.

2) J'ai fais un formulaire recherche qui possède 3 zones pour la recherche :

- Une zone liste déroulante « cbo_table » en liste de valeur (pour origine de source) qui reprend le nom de tables, avec une procédure évènementiel « apres MAJ » dont le code VB est le suivant :

" Private Sub cbo_table_AfterUpdate()
Me.cbo_champ.RowSource = "[" & Me.cbo_table.Value & "]"
Me.cbo_champ.Requery
End Sub"

-Une zone liste déroulante « cbo_champ » en table/requete (origine source) avec en contenu une requête :
« SELECT Req_source.[Client].Source, Req_source.[Facture].Source, Req_source.[Relevé].Source FROM Req_source ORDER BY Req_source.[Relevé].Source, Req_source.[Facture].Source, Req_source.[Client].Source; »

-Un champ texte en format « texte brut » et une recherche filtré par « Base de donnée par defaut »

-Le tout est accompagné d'un bouton avec la procédure évènementiel sur clic suivante :

"Dim strTable As String, strField As String, strCriteria As String, strSql As String
Dim Criter As Variant

strTable = "[" & Me.cbo_table & "]" ' recupère le nom de la table
strField = "[" & Me.cbo_champ & "]" ' recupère le nom du champ

' compose le critere de recherche
strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"

' construit la requête sql
strSql = "SELECT DISTINCTROW " & strTable & ".*"
strSql = strSql & " FROM " & strTable
strSql = strSql & " WHERE ((" & strCriteria & "));"

Me.lst_resultat.RowSource = strSql ' affecte sql a lst_Resultat
Me.lst_resultat.Requery ' recalcule la liste
End Sub »

3) Le but étant de pouvoir faire une recherche d'un mot précis sur la colonne problème d'une table en particulier. Afin par exemple de pouvoir faire ressortir les lignes qui correspondent uniquement a la table « Facture » pour la source « client » avec dans le problème « avoir ».

Choix de la table : La zone liste déroulante « cbo_table » : je défini la table sur la quelle faire la recherche.

Choix de la source : zone liste déroulante « cbo_champ » me permettant de prés sélectionner que les lignes de la table précédemment sélectionné par rapport a une valeur de leur colonne « source ».

Choix des lignes : Le champ texte en format « texte brut » me permettant de sortir uniquement les lignes contenant le mot voulu par rapport a la table sélectionné et des lignes pré sélectionné au préalable.

Mon problème :

Jusqu'à présent ma zone liste déroulante « cbo_table fonctionne bien et me sélectionne la table, seulement ma zone liste déroulante « cbo_champ » ne me ressort pas les valeurs de ma colonne source de la table sélectionné au par avant et mon champ texte quand a lui me ressort toutes les lignes de la table sélectionné.

Quelqu'un aurait il une solution pour résoudre mon souci ?

Cordialement.


A voir également:

1 réponse

Bonjour
Une base de recherche multicritère dans ce lien

http://www.cjoint.com/c/EIlu0o76cDk
0