MorkDark
Messages postés1Date d'inscriptionsamedi 5 septembre 2015StatutMembreDerniè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 ?