![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 5
|
Bonjour,
Je tente de créer un formulaire de recherche multi-critères, je me suis basée sur un exemple et voici les codes : Code :
Option Compare Database Private Sub chkRefEntreprise_Click() If Me.chkRefEntreprise Then Me.txtRechRefEntreprise.Visible = False Else Me.txtRechRefEntreprise.Visible = True End If RefreshQuery End Sub Private Sub chkFamilleProduit_Click() If Me.chkFamilleProduit Then Me.cmbRechFamilleProduit.Visible = False Else Me.cmbRechFamilleProduit.Visible = True End If RefreshQuery End Sub Private Sub chkRefSAP_Click() If Me.chkRefSAP Then Me.TxtRechRefSAP.Visible = False Else Me.TxtRechRefSAP.Visible = True End If RefreshQuery End Sub Private Sub chkN°Siret_Click() If Me.chkN°Siret Then Me.txtRechN°Siret.Visible = False Else Me.txtRechN°Siret.Visible = True End If RefreshQuery End Sub Private Sub chkRegion_Click() If Me.chkRegion Then Me.cmbRechRegion.Visible = False Else Me.cmbRechRegion.Visible = True End If RefreshQuery End Sub Private Sub chkNomEntreprise_Click() If Me.chkNomEntreprise Then Me.txtRechNomEntreprise.Visible = False Else Me.txtRechNomEntreprise.Visible = True End If RefreshQuery End Sub Private Sub chkDepartement_Click() If Me.chkDepartement Then Me.txtRechDepartement.Visible = False Else Me.txtRechDepartement.Visible = True End If RefreshQuery End Sub Private Sub cmbRechFamilleProduit_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub cmbRechRegion_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub Détail_Click() End Sub 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.lstResults.RowSource = "SELECT [Réf Entreprise], [Réf Entreprise], [Réf SAP], Nom, [N°Siret], Département, Région, [Famille de produit], Type FROM Identité;" Me.lstResults.Requery End Sub Private Sub RefreshQuery() Dim SQL As String Dim SQLWhere As String SQL = "SELECT [Réf Entreprise], [Réf Entreprise], [Réf SAP], Nom, [N°Siret], Département, Région, [Famille de produit], Type FROM Identité Where Identité![Réf Entreprise] <> 0 " If Not Me.chkRefEntreprise Then SQL = SQL & "And Identité![Réf Entreprise] like '*" & Me.txtRechRefEntreprise & "*' " End If If Not Me.chkFamilleProduit Then SQL = SQL & "And Identité![Famille de produit] = '" & Me.cmbRechFamilleProduit & "' " End If If Not Me.chkRefSAP Then SQL = SQL & "And Identité![Réf SAP] like '*" & Me.TxtRechRefSAP & "*' " End If If Not Me.chkN°Siret Then SQL = SQL & "And Identité!N°Siret like '*" & Me.txtRechN°Siret & "*' " End If If Not Me.chkRegion Then SQL = SQL & "And Identité!Région = '" & Me.cmbRechRegion & "' " End If If Not Me.chkNomEntreprise Then SQL = SQL & "And Identité!Nom like '*" & Me.txtRechNomEntreprise & "*' " End If If Not Me.chkDepartement Then SQL = SQL & "And Identité!Département like '*" & Me.txtRechDepartement & "*' " End If SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & ";" Me.lblStats.Caption = CStr(DCount("*", "Identité", SQLWhere) & " / " & DCount("*", "Identité")) Me.lstResults.RowSource = SQL Me.lstResults.Requery End Sub Private Sub lstResults_BeforeUpdate(Cancel As Integer) End Sub Private Sub lstResults_DblClick(Cancel As Integer) DoCmd.OpenForm "frmAutoIdentité", acNormal, , "[Réf Entreprise] = " & Me.lstResults End Sub Private Sub txtRechRefEntreprise_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub txtRechRefSAP_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub txtRechNomEntreprise_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub txtRechN°Siret_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Private Sub txtRechDepartement_BeforeUpdate(Cancel As Integer) RefreshQuery End Sub Comment faire disparaître cette fenêtre? Lorsque je retire cette fenêtre le message d'erreur 3075 apparaît. Je ne comprends pas ou sont mes erreurs de syntaxe. Je vous remercie par avance !!!! Dernière modification par Philippe JOCHMANS ; 03/09/2008 à 07h03 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif |
|
|
|
|
|
#2 (permalink) | |
|
Invité régulier
![]() Date d'inscription: mai 2004
Âge: 23
Messages: 10
|
Citation:
|
|
|
|
|
|
|
#4 (permalink) |
|
Invité régulier
![]() Date d'inscription: mai 2004
Âge: 23
Messages: 10
|
J'avais déjà eu une erreur comme ça et cela venait juste de la syntaxe de ma requête.
Essaie de lancer ton formulaire avec des points d'arrêts pour vérifier ta requête à chaque étape car vu l'erreur cela viendrait de l'execution de ta requête. |
|
|
|
|
|
#5 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: novembre 2006
Âge: 45
Messages: 426
|
Bonjour,
Tu n'as pas une erreur de syntaxe mais plutôt une erreur de champ. Le champ "Type" n'est tout simplement pas trouvé par le SELECT dans ta table "Identité".
__________________
Un seul conseil: la règle des 3S. |
|
|
|
|
|
#8 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 5
|
Il n'y a plus le message d'erreur qui apparait, en effet le champs "Type" était en trop dans :
Me.lstResults.RowSource = "SELECT [Réf Entreprise], [Réf Entreprise], [Réf SAP], Nom, [N°Siret], Département, Région, [Famille de produit], FROM Identité;" Pourtant il persiste des erreurs d'écriture car le message d'erreur 3075 apparait : erreur de syntaxe. |
|
|
|
|
|
#9 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: novembre 2006
Âge: 45
Messages: 426
|
Fait un debug.print de ton select
Code :
debug.print SQL
__________________
Un seul conseil: la règle des 3S. |
|
|
|
|
![]() |
![]() |
||
Problème de formulaire recherche multi-critères
|
||
| Outils de la discussion | |
|
|