Problème création formulaire Multi critère Access
Bonjour , j'ai créé un formulaire multicritère Access !
Au début avec un critère cela marché mais maintenant avec deux critères rien ne se passe , quelqu’un aurait une idée ? merci
--------------------------------------------------------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Option Compare Database
Private Sub cbo_table_Click()
Me.cbo_champ.RowSource = Me.cbo_table.Value
Me.cbo_champ.Requery
End Sub
Private Sub cmd_recherche_Click()
Dim strTable As String, strField As String, strField1 As String, strCriteria As String, strCriteria1 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
strField1 = Me.cbo_champ1 ' recupère le nom du champ1
' compose le critere de recherche
strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
strCriteria1 = strTable & "." & strField1 & " Like """ & Me.txt_critere1 & """"
' construit la requête sql
strSql = "SELECT DISTINCTROW " & strTable & ".*"
strSql = strSql & " FROM " & strTable
strSql = strSql & " WHERE ((" & strCriteria & ") And (" & strCriteria1 & "));"
Me.lst_resultat.RowSource = strSql ' affecte sql a lst_Resultat
Me.lst_resultat.Requery ' recalcule la liste
End Sub
Function lf_GetTypeField(lfNameTbl As String, lfNameFld As String)
' Renvoie le numéro du type du champ
'lfNameTbl = nom de la table
'lfNameFld = nom du champ
Dim dbs As Database ' Objet de la base
Dim tbl As TableDef ' Objet de définition de table
Set dbs = CurrentDb ' ouvre la base courante
Set tbl = dbs.TableDefs(lfNameTbl) ' ouvre la définition table
lf_GetTypeField = tbl.Fields(lfNameFld).Type ' renvoie le type de champ
Set tbl = Nothing ' libération des objets
Set dbs = Nothing
End Function |
--------------------------------------------------------------------------
Rep: Problème création formulaire Multi critère Access
Pour une réponse rapide, à essayer:
Dans:
Code:
strSql = strSql & " WHERE ((" & strCriteria & ") And (" & strCriteria1 & "));"
enlève les parenthèses, comme ça:
Code:
strSql = strSql & " WHERE (" & strCriteria & ") And (" & strCriteria1 & ");"
Rep: Problème création formulaire Multi critère Access
Excuse moi je n'avais pas tout lu.
La condition WHERE demande la forme:
Citation:
WHERE (Table.Champs) Like 'a*' AND (Table.Champs) = " & Me.Control
Le plus simple est d'aller dans Requête et de la composer, puis de la recopier, avec des ' à la place de " à l'intérieur de VBA. Je te conseille de moins découper ta requête sous VBA. C'est plus lisible.
Citation:
Me.RecordSource = "SELECT Table.* FROM Table WHERE (Table.Champs) Like 'a*' AND (Table.Champs1) = " & Me.Control