Bonjour à tous,
j'ai suivi pas à pas la procédure de recherche multi-critères qui est proposée par Cafeine.
Malheureusement, je n'arrive pas à l'adapter à mon cas
Ma liste de réponses reste désespérément vide.
ma requête SQL marche bien lorsqu'elle est utilisée en solo :
Mon initialisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT T_Fourniture.Num, T_Fourniture.R_Type, T_Fourniture.NomCommercial, T_Fourniture.CodeSAP, T_Fourniture.R_Fournisseur, T_Fourniture.R_Distributeur FROM T_Fourniture;
Et mon RefreshQuery :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub Form_Load() Dim ctl As Control For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "chk" ctl.Value = -1 Case "lbl" ctl.Caption = "- * - * -" Case "txt" ctl.Visible = False ctl.Value = "" Case "cmb" ctl.Visible = False End Select Next ctl Me.lstResultats.RowSource = "SELECT T_Fourniture.Num, T_Fourniture.R_Type, T_Fourniture.NomCommercial, T_Fourniture.CodeSAP, T_Fourniture.R_Fournisseur, T_Fourniture.R_Distributeur" Me.lstResultats.RowSource = Me.lstResultats.RowSource & "FROM T_Fourniture;" Me.lstResultats.Requery End Sub
J'ai commenté la partie lblStats parce que ça buggue sans que je sache vraiment pourquoi. C'est une partie statistiques qui ne m'intéresse pas énormément et j'aimerais déjà que le reste fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub RefreshQuery() Dim SQL As String Dim SQLWhere As String SQL = "SELECT T_Fourniture.Num, T_Fourniture.R_Type, T_Fourniture.NomCommercial, T_Fourniture.CodeSAP, T_Fourniture.R_Fournisseur, T_Fourniture.R_Distributeur" SQL = SQL & "FROM T_Fourniture" SQL = SQL & "Where T_Fourniture!Num <> 0 " If Me.chkType Then SQL = SQL & "And T_Fourniture!R_Type like '" & Me.cmbType & "' " End If If Me.chkNomCommercial Then SQL = SQL & "And T_Fourniture!NomCommercial = '*" & Me.txtNomCommercial & "*' " End If If Me.chkCodeSAP Then SQL = SQL & "And T_Fourniture!CodeSAP like '*" & Me.txtCodeSAP & "*' " End If If Me.chkFournisseur Then SQL = SQL & "And T_Fourniture!R_Fournisseur like '" & Me.cmbFournisseur & "' " End If If Me.chkDistributeur Then SQL = SQL & "And T_Fourniture!R_Distributeur like '" & Me.cmbDistributeur & "' " End If SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & ";" 'Me.lblStats.Caption = DCount("*", "T_Fourniture", SQLWhere) & " / " & DCount("*", "T_Fourniture") Me.lstResultats.RowSource = SQL Me.lstResultats.Requery End Sub
Ce qui me paraît super bizarre dès le début c'est que dans le Form_Load, le ctl.Value = -1 est inefficient : mes chkBox sont cochées au chargement et les décocher fait apparaître les champs de recherche.
Merci beaucoup pour votre aide, sincèrement !
Partager