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
| Dim strSQL As String
Dim strWhere As String
Dim strListMulti As String
Dim strListDeroul As String
Dim varItm As Variant
' début de la requête
strSQL = "SELECT T_RchR.Catégorie, T_RchR.Famille, T_RchR.Libellé, T_RchR.Métier, T_RchR.RJ1, T_RchR.RI," & _
" T_RchR.[Ajout Possible], T_RchR.[Pièce Jointe], T_RchR.[Zone durée], T_RchR.Edition FROM T_RchR"
'Zone de liste à choix multiple filtrant les catégories:
If [Forms]![F_Res].[filtreCategorie].ItemsSelected.Count > 0 Then
For Each varItm In [Forms]![F_Res].[filtreCategorie].Item
' si Catégorie est numérique
strListMulti = strListMulti & IIf(strFiltre = "", "", ",") & ([Forms]![F_Res].[filtreCategorie].ItemData(varItm))
' ou si Catégorie est du texte
strListMulti = strListMulti & IIf(strFiltre = "", "", ",""") & ([Forms]![F_Res].[filtreCategorie].ItemData(varItm)) & """"
Next varItm
' ajout dans les critères de la requête
strWhere = strWhere & IIf(strWhere = "", " WHERE", "") & " T_RchR.Catégorie In(" & strListMulti & ") And"
End If
'Liste déroulante filtrant sur le libellé:
strListDeroul = ""
If [Forms]![F_Res]![filtreLibelle].ListIndex = -1 Then
strListDeroul = " T_RchR.[Libellé] Like ""*"""
Else
strListDeroul = " T_RchR.[Libellé] Like ""*" & [Forms]![F_Res]![filtreLibelle] & "*"""
End If
' ajout dans les critères de la requête
strWhere = strWhere & IIf(strWhere = "", " WHERE", "") & strListDeroul & " And"
'Liste déroulante filtrant sur lajout:
strListDeroul = ""
If [Forms]![F_Res]![Ajout Possible].ListIndex = -1 Then
strListDeroul = " T_RchR.[Ajout Possible] Like ""*"""
Else
strListDeroul = " T_RchR.[Ajout Possible] Like ""*" & [Forms]![F_Res]![filtreAjout] & "*"""
End If
' ajout dans les critères de la requête
strWhere = strWhere & IIf(strWhere = "", " WHERE", "") & strListDeroul & " And"
'Liste déroulante filtrant sur la durée:
strListDeroul = ""
If [Forms]![F_Res]![filtreDuree].ListIndex = -1 Then
strListDeroul = " T_RchR.[Zone durée] Like ""*"""
Else
strListDeroul = " T_RchR.[Zone durée] Like ""*" & [Forms]![F_Res]![filtreDuree] & "*"""
End If
' ajout dans les critères de la requête
strWhere = strWhere & IIf(strWhere = "", " WHERE", "") & strListDeroul
' construction finale de la requête
strSQL = strSQL & strWhere |
Partager