cs_byob
Messages postés35Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention15 décembre 2008
-
12 avril 2007 à 14:22
cs_byob
Messages postés35Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention15 décembre 2008
-
12 avril 2007 à 16:54
Bonjour,
sur mon formulaire j'effectue une recherche multi critere, l'ennui c'est que cela ne marche pas, j'ai beau chercher un soucis je ne trouve pas mon erreur.
La premiere requete (SELECT [codefiche], [OF], [Datefiche], [codeOperateur], [codeMachine], [codepiece] FROM fiche; )
s'affiche dans la table mais quand je selectionne un critere la table se vide et puis plus rien. En fait il s'affiche quelque chose dedans seulement quand je selectionne aucun critere
Voici mon code :
Option Compare Database
Private Sub chkOF_Click()
If Me.chkOf Then
Me.cmbOF.Visible = False
Else
Me.cmbOF.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkDatefiche_Click()
If Me.chkDatefiche Then
Me.cmbDatefiche.Visible = False
Else
Me.cmbDatefiche.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkOperateur_Click()
If Me.chkOperateur Then
Me.cmbOperateur.Visible = False
Else
Me.cmbOperateur.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkMachine_Click()
If Me.chkMachine Then
Me.cmbMachine.Visible = False
Else
Me.cmbMachine.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkReference_Click()
If Me.chkReference Then
Me.cmbReference.Visible = False
Else
Me.cmbReference.Visible = True
End If
RefreshQuery
End Sub
Private Sub cmbOF_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbOperateur_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbMachine_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbDatefiche_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbReference_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmdfiltre_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
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT codefiche, OF, Datefiche, codeOperateur, codeMachine, codepiece FROM fiche Where fiche!codefiche <> 0 "
If Not Me.chkOf Then SQL SQL & "And fiche!OF '" & Me.cmbOF & "' "
End If
If Not Me.chkDatefiche Then SQL SQL & "And fiche!Datefiche '" & Me.cmbDatefiche & "' "
End If
If Not Me.chkOperateur Then SQL SQL & "And fiche!codeOperateur '" & Me.cmbOperateur & "' "
End If
If Not Me.chkMachine Then SQL SQL & "And fiche!codeMachine '" & Me.cmbMachine & "' "
End If
If Not Me.chkReference Then SQL SQL & "And fiche!codepiece '" & Me.cmbReference & "' "
End If
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 avril 2007 à 14:48
Hum, tu es sûr de ta syntaxe SQL ???
Il me semble pas que le point d'exclamation soit légal, utilise le point plutôt.
De plus, fait attention au champs texte (il doivent être délimité par des quotes), et les dates (qui doivent être délimitées par des dièses, et être au format américain !).
Ce qui donne :
SELECT Numero, Texte, Date FROM table WHERE Numero 0 AND Texte 'Toto' AND date = #12/31/2007#
cs_byob
Messages postés35Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention15 décembre 2008 12 avril 2007 à 15:12
Merci pour ta reponse.
pour ce qui est de la date j'ai fait :SQL SQL & "And fiche.Datefiche #" & Me.cmbDatefiche & "# "
et comme tu l'avais prevu c ok, sa marche.
Cependant les autres criteres : OF, Operateur, Machine, et Reference avaient deja des quotes :SQL SQL & "And fiche.codeOperateur ' " & Me.cmbOperateur & " ' "
mais elles sont peut etre mal mises...
Donc la sa marche 1/5 on va dire.
Encore merci, mais si tu veux re-m'expliquer les cotes.... te gene pas...