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 53 54 55 56
| Dim strTable As String
Dim strCriteria1 As String, strCriteria2 As String, strCriteria3 As String
Dim strSql As String, strSqlWhere, sqlAND As Boolean
Dim Criter As Variant
strTable = Me.cbo_table ' recupère le nom de la table sans espace dans le nom
strField = Me.cbo_champ ' recupère le nom du champ sans espace dans le nom
' construit partie SELECT ... FROM ... de la requête sql
strSql = "SELECT DISTINCTROW " & strTable & ".*"
strSql = strSql & " FROM " & strTable & vbCrLf
' construit la partie WHERE de la requête
sqlAND = False
strSqlWhere = "WHERE ("
' Critère 1
If strCriteria1 <> "" Then
If sqlAND Then strSqlWhere = strSqlWhere & " AND "
sqlAND = True
strSqlWhere = strSqlWhere & "(" & strCriteria1 & ")"
End If
' Critère 2
If strCriteria2 <> "" Then
If sqlAND Then strSqlWhere = strSqlWhere & " AND "
sqlAND = True
strSqlWhere = strSqlWhere & "(" & strCriteria2 & ")"
End If
' Critère 3
If strCriteria3 <> "" Then
If sqlAND Then strSqlWhere = strSqlWhere & " AND "
sqlAND = True
strSqlWhere = strSqlWhere & "(" & strCriteria3 & ")"
End If
strSqlWhere = strSqlWhere & ")" ' Ferme parenthese WHERE
' N'ajoute le WHERE que si il y a des critères
If strSqlWhere <> "WHERE ()" Then
strSql = strSql & strSqlWhere
End If
' Termine la requête
strSql = strSql & ";"
Me.lst_Resultat.RowSource = strSql ' affecte sql a lst_Resultat
Me.lst_Resultat.Requery ' recalcule la liste
' fin du code d'erreur*************
Exit_cmd_recherche_Click:
Exit Sub
Err_cmd_recherche_Click:
MsgBox Err.Description
Resume Exit_cmd_recherche_Click
'************************************** |
Partager