Je suis novice en programmation. Je suis en train de réaliser une base de données. Je suis bloquée au niveau des formulaires de recherche multicritère.
J’ai un gros pavé d’access sur lequel j’ai un exemple de formulaire en VBA. J’ai également consulté les tutoriaux de developpez.com et caféine mais je ne m’en sort pas.
Je souhaiterai réaliser une requête sur 5 critères. 4 d’entre eux sont des listes déroulantes et le dernier est un champ libre à saisir. Je voudrai que le résultat apparaisse sous forme de tableau dans le même formulaire.
Voici mes lignes de commandes de mon bouton de recherche.
Private Sub Commande20_Click()
Dim strFiltre As String
Dim avarMotsClefs As Variant
Dim varMotsClefs As Variant
'Filtre sur le departement
' On Error Resume Next
strFiltre = ""
If Not IsNull(Me.cmddept) Then
strFiltre = "([num_dept]='" & Me.cmddept & "')"
End If
'Filtre sur le canton
strFiltre = ""
If Not IsNull(Me.cmdcanton) Then
If strFiltre <> "" Then strFiltre = strFiltre & "AND"
strFiltre = strFiltre & "([chef_lieu]='" & Me.cmdcanton & "')"
End If
'Filtre sur la commune
strFiltre = ""
If Not IsNull(Me.cmdcommune) Then
If strFiltre <> "" Then strFiltre = strFiltre & "AND"
strFiltre = strFiltre & "([nom_commune]='" & Me.cmdcommune & "')"
End If
'Filtre sur le type
strFiltre = ""
If Not IsNull(Me.cmdtype) Then
If strFiltre <> "" Then strFiltre = strFiltre & "AND"
strFiltre = strFiltre & "([type]='" & Me.cmdtype & "')"
End If
'Filtre sur le nom
avarMotsClefs = Split(Nz(Me.cmdnom), " " )
For Each varMotsClefs In avarMotsClefs
If Trim(varMotsClefs) <> "" Then
If strFiltre <> "" Then strFiltre = strFiltre & "AND"
strFiltre = strFiltre & "([nom] LIKE '*" & varMotsClefs & "*')"
End If
Next
' Afficher le resultat
Me.lblSQL.Caption = strFiltre
'Filtrer le sous-formulaire
With Me.resultat.Form
.Filter = strFiltre
.FilterOn = True
End With
End Sub
Est-ce que quelqu’un pourrait me donner un coup de main ?