|
| GCUSSE | Posté le 25/05/2003 @ 17:47 |
Petit astucien
171 Messages
| Bonjour à tous voici mon probleme:
J'ai décidé de créer un formulaire de recherche multi critère suivant la methode exposée dans le tres bon tutorial se trouvant sur ce site.
Je suis confronté à un petit probleme car un des critère est une date et j'ai beau essayer toutes les astuces que je trouve ci et là sur le net, cela ne marche pas à chaque fois que le critère date est apellé, je n'ai aucun enregistrement qui apparait dans le résultat.
Voici un extrait du code écrit:
Private Sub RefreshQuery()
'On Error GoTo RefreshQuery_error
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT [Courrier tapé].[Date du courrier], [Courrier tapé].Référence, [Courrier tapé].Objet, [Courrier tapé].Destinataire, [Courrier tapé].Sujet,[Sortie de courrier].[Numéro de sortie], [Sortie de courrier].Date, [Sortie de courrier].Recommandé, [Sortie de courrier].Divers FROM [Courrier tapé] LEFT JOIN [Sortie de courrier] ON [Courrier tapé].Référence = [Sortie de courrier].Référence WHERE ((([Sortie de courrier].[Numéro de sortie])<>0))"
If Not Me.ChkRechDate Then
SQL = SQL & "And ([Courrier tapé].[Date du courrier] = #" & Format(Me.TxtDate, "mm/dd/yyyy") & "#) "
End If
If Not Me.ChkRechDestiCmb Then
SQL = SQL & "And [Courrier tapé].Destinataire = '" & Me.CmbDesti & "'"
End If
If Not Me.ChkRechObjet Then
SQL = SQL & "And [Courrier tapé].Objet Like '*" & Me.TxtObjet & "*'"
End If
If Not Me.ChkRechRcd Then
SQL = SQL & "And [Sortie de courrier].Recommandé = " & Me.CmbRcd & " "
End If
If Not Me.ChkRechRef Then
SQL = SQL & "And [Courrier tapé].Référence Like '*" & Me.TxtRef & "*'"
End If
If Not Me.ChkRechSujet Then
SQL = SQL & "And [Courrier tapé].Sujet Like '*" & Me.TxtSujet & "*'"
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
'SQL = SQL & ";"
SQL = SQL & " ORDER BY [Courrier tapé].[Date du courrier] DESC;"
If SQLWhere <> "((([Sortie de courrier].[Numéro de sortie])<>0))And [Courrier tapé].[Date du courrier] = Datevalue(' & &')" Then
Me.LblStat.Caption = DCount("*", "RegroupCourrier", SQLWhere) & " courriers(s) trouvé(s) sur" & DCount("*", "RegroupCourrier")
End If
Me.LstResult.RowSource = SQL
Me.LstResult.Requery
RefreshQuery_error:
Exit Sub
End Sub
Merci d'éclairer ma lanterne car je buche la dessus depuis plus de 3 heures sans trouver.
Merci d'avance pour votre aide
|
| |
| |
| Publicité |
|
|
| bubulle | Posté le 25/05/2003 à 17:51 |
Petit astucien
361 Messages
| Salut dans ta requête, tu as choisi le format mois/jour/an est-c volontaire ?
sinon il faut mettre dd/mm/yyyy |
| |
|
| GCUSSE | Posté le 25/05/2003 à 17:54 |
Petit astucien
171 Messages
| je peux prendre n'importe quel format, je plante a chque fois |
| |
|
| bubulle | Posté le 25/05/2003 à 18:38 |
Petit astucien
361 Messages
| OK je réfléchis.
Modifié par bubulle le 25/05/2003 18:40 |
| |
|
| bubulle | Posté le 25/05/2003 à 18:44 |
Petit astucien
361 Messages
| Sinon ton champ "date du courrier" est bien au format date ?
Où tu débugges et tu regardes la valeur de SQl après son passage dans le premier IF qui almimente la variable suite à la recherche de la date. |
| |
|
| baptiste | Posté le 25/05/2003 à 19:34 |
Equipe PC Astuces
| salut,
essaie [code]# " & Me.TxtDate & " #[/code] tout court, en précisant le format date sur ta textbox en mode Création |
| |
|
| sbr | Posté le 26/05/2003 à 18:50 |
Petit astucien
9 Messages
| Le format standard SQL pour les dates est yyyy-mm-dd .
|
| |
|
| GCUSSE | Posté le 26/05/2003 à 21:33 |
Petit astucien
171 Messages
| Merci les gars, j'ai enfin trouvé:
Le code est bon, j'ai bien pris en compte le format de date en vab et sql qui est le format américain mais j'avais omis une chose.
Dans ma mes formulaires suite a une manoeuvre hasardeuse j'avais remplacé sous le controle date: valeur par defaut maintenant()
Or, j'aurais du mettre: date() car maintenant() enregistre non seulement la date mais egalemùent l'heure, du style :
26/05/2003 8:00:15
Quand je lancais ma requete date, forcement je ne specifais par l'heure et donc il ne trouvait pas.
CQFD.
Je vous remercie pour vos tentatives de reponses.
A+ |
| |
|
|
| Haut de la page |