> Tous les forumsAutres langages

 Access - VBA - probleme de date dans requete sql
Statut du sujet : NON RESOLU Imprimer
 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
 Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 
 
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
Afficher le profil de bubulleEnvoyer un message privé à bubulle
 Revenir en haut de la page
 GCUSSE  Posté le 25/05/2003 à 17:54  
Petit astucien

171 Messages
je peux prendre n'importe quel format, je plante a chque fois
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
 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
Afficher le profil de bubulleEnvoyer un message privé à bubulle
 Revenir en haut de la page
 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.
Afficher le profil de bubulleEnvoyer un message privé à bubulle
 Revenir en haut de la page
 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
Afficher le profil de baptiste Voir la configuration de baptisteEnvoyer un message privé à baptiste
 Revenir en haut de la page
 sbr  Posté le 26/05/2003 à 18:50  
Petit astucien

9 Messages
Le format standard SQL pour les dates est yyyy-mm-dd .
Afficher le profil de sbrEnvoyer un message privé à sbr
 Revenir en haut de la page
 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+
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page