Bonjour,
J'aimerai construire un formulaire (FormEquipeRecherche) du meme type que celui-ci:
http://www.developpez.net/forums/d14...h/#post7855971
Dans mon cas il y a seulement 3 checkbox associees a 3 combobox (perf, code et mod).
J'ai repris exactement le code fait dans le lien au dessus mais ca ne fonctionne pas, des que je coche une checkbox ou choisit un critere dans une combobox le message d'erreur 3265 apparait
Je ne comprend pas ce qui ne va pas
Voici le code :
Et voici ma base de donnees pour ceux qui pourraient y jeter un petit coup d'oeil
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
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
57
58
59
60
61
62 Option Compare Database Option Explicit Public Sub ModifCHK() Me("cmbRech" & Mid(Me.ActiveControl.Name, 4)).Visible = Not Me("cmbRech" & Mid(Me.ActiveControl.Name, 4)).Visible If Me("cmbRech" & Mid(Me.ActiveControl.Name, 4)).Visible = False Then Me("cmbRech" & Mid(Me.ActiveControl.Name, 4)) = Null Call RefreshQuery Else DoCmd.GoToControl Me("cmbRech" & Mid(Me.ActiveControl.Name, 4)).Name Me.ActiveControl.Dropdown End If End Sub Private Sub chkcode_Click() Call ModifCHK End Sub Private Sub chkmod_Click() Call ModifCHK End Sub Private Sub chkperf_Click() Call ModifCHK End Sub Private Sub RefreshQuery() Dim sSQL As String Dim sSQLWHERE As String Dim ctl As Control Dim q As QueryDef sSQL = "SELECT TEquipeListe.Equipe, TEquipeListe.Perf, TMod.[Mod], TCode.Code FROM (TCode INNER JOIN (TMod INNER JOIN (TEquipeListe INNER JOIN TEquipeRapport ON TEquipeListe.Equipe = TEquipeRapport.Equipe) ON TMod.[Mod] = TEquipeListe.[Mod]) ON TCode.Code = TEquipeRapport.Code) INNER JOIN TPerf ON TEquipeListe.Perf = TPerf.Perf" For Each ctl In Me.Controls If Left(ctl.Name, 7) = "cmbRech" And Not IsNull(ctl) = True Then Select Case ctl.Tag Case "Text" sSQLWHERE = sSQLWHERE & Mid(ctl.Name, 8) & "=""" & ctl & """ and " Case "Numeric" sSQLWHERE = sSQLWHERE & Mid(ctl.Name, 8) & "=" & ctl & " and " End Select End If Next ctl If Len(sSQLWHERE) <> 0 Then sSQLWHERE = " WHERE " & Left(sSQLWHERE, Len(sSQLWHERE) - 5) sSQL = sSQL & sSQLWHERE & ";" Set q = CurrentDb.QueryDefs("rRowSource") 'Ligne d'erreur' q.SQL = sSQL Set q = Nothing Me.lstresults.RowSource = "rRowSource" End Sub Private Sub cmbRechcode_AfterUpdate() Call RefreshQuery End Sub Private Sub cmbRechmod_AfterUpdate() Call RefreshQuery End Sub Private Sub cmbRechperf_AfterUpdate() Call RefreshQuery End Sub
DatabaseDvlp.zip
Partager