problème avec recherche multi-critères
Bonjour,
Je me permets de vous solliciter car j'ai besoin d'aide et je suis perdu.
Je précise que je ne suis pas informaticien, ce qui à mon avis explique grandement mes déboires...:lol:
J'ai fait pour mon travail une base de données de suivi de fiches actions entre différents services sous ACCESS. Si j'arrive à m'en sortir dans la plupart des cas avec les fonctions de bases d'ACCESS(formulaires, requêtes, macros...) je n'ai pas le choix, pour faire une recherche multi-critere dynamique, il me faut coder en VBA.
En fait, j'aimerais à partir de plusieurs critères définis par l'utilisateur (dont 2 zones de listes modifiables et une zone de texte) renvoyer un tableau de données avec bien évidemment comme filtre mes critères saisis.
En reprenant un exemple sur le net, j'ai écrit ce code mais le programme bloque sur la fonction Rowsource et ça marche pas. Quelqu'un peut-il m'aider svp...je suis désespéré :(
Merci d'avance
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
| Private Sub Form_Open(Cancel As Integer)
cmddomaine.Visible = False
cmdagence.Visible = False
txtannee.Visible = False
End Sub
Private Sub chkannee_Click()
Me.txtannee.Visible = Not Me.txtannee.Visible
Refreshquery
End Sub
Private Sub chkdomaine_Click()
Me.cmddomaine.Visible = Not Me.cmddomaine.Visible
Refreshquery
End Sub
Private Sub chkagence_Click()
Me.cmdagence.Visible = Not Me.cmdagence.Visible
Refreshquery
End Sub
Private Sub Refreshquery()
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT num_auto, titre_action, NOM_com, année FROM Tb_fiche_projet Where Tb_fiche_projet!num_auto <> 0 "
If Me.chkAnnee Then
SQL = SQL & "And Tb_fiche_projet!année like '*" & Me.txtannee & "*' "
End If
If Me.chkDomaine Then
SQL = SQL & "And Tb_fiche_projet!id_domaine = '" & Me.cmddomaine & "' "
End If
If Me.chkAgence Then
SQL = SQL & "And Tb_fiche_projet!id_agence = '" & Me.cmdagence & "' "
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
SQL = SQL & ";"
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub |