Problème de sélection de date avec VB6 sur base de données Access

cs_Grosnounours Messages postés 3 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 4 octobre 2004 - 4 oct. 2004 à 13:59
cs_Grosnounours Messages postés 3 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 4 octobre 2004 - 4 oct. 2004 à 19:29
Bonjour

J'ai un problème pour sélectionner les enregistrements d'une base de données Access par rapport a une date de debut et une date de fin.

VarMoisDebut, VarAnDebut, VarMoisFin, et VarAnFin sont des variables mois et années.

DatDebut As String
DatFin As String

DatDebut = "#01/" & VarMoisDebut & "/" & VarAnDebut & "#"
DatFin = "#01/" & VarMoisFin & "/" & VarAnFin & "#"

'--- Requete SQL le DataEnvironment pour un DataReport ---
Select * From Table Where ChampDate >= DatDebut And ChampDate < DatFin

Merci d'avance.

Grosnounours %-6

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 oct. 2004 à 15:23
Salut Grosnounours
-1- Pour comparer des données entre des bornes, tu peux utiliser la syntaxe 'Where Champ Between Val1 And Val2
-2- Pour utiliser le contenu d'une variable dans une syntaxe SQL en VB6, il faut créer la chaine comme une chaine classique :
SQL = "Select * From Table Where ChampDate >= " & DatDebut & " And ChampDate < " & DatFin

ou, avec la syntaxe proposée :
SQL = "Select * From Table Where ChampDate between " & DatDebut & " And " & DatFin

-3- Pour les dates, c'est souvent délicat : Si ça ne fonctionne toujours pas, ajoute DateValue() :
SQL = "Select * From Table Where DateValue(ChampDate) between DateValue(" & DatDebut & ") And DateValue(" & DatFin & ")"

Vala
Jack
0
cs_Grosnounours Messages postés 3 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 4 octobre 2004
4 oct. 2004 à 19:29
Salut Jack

J'avais déjà tout essayé sauf "DateValue" (je n'y avais pas pensé). Je n'avais que des types incompatibles ou rien ne se chargait. Avec "DateValue", ça fonctionne trés bien avec le code suivant (pour ceux qui auraient le même problème):

Select * From Table Where ChampDate Between DateValue(DatDebut) And DateValue(DatFin)

Je te remercie Beaucoup de ton aide.

Grosnounours %-6
0
Rejoignez-nous