Probleme de date entre VB6 et Access2000

Résolu
yoh_bur
Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
9 février 2007
- 10 mai 2006 à 18:29
yoh_bur
Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
9 février 2007
- 15 mai 2006 à 16:57
Pour une appli de gestion, je stocke des fiches sur des deplacements et je fais ensuite des recapitulatifs de coup par mois.

Pour faire ce recapitulatif, je dois selectionné tout les enregistrements concernant un mois donnée dans un recordset (en adodc) pour faire des calculs dessus.
Or, dans la communication entre VB6 et access2K, il y a des problemes sur la gestion des dates (entre format americain et format francais).
Access ne recupere pas toujours la date au meme format ( si <14 alors format americain, si superieur a 14 format francais si je ne me trompe pas)
Pour pallier a ce probleme, j'ai passer mon champ date en format texte dans Access.

Mais il se trouve que si je fais une requete sur cette table qui compare le champ date recuperer a une valeur (passé en parametre), je compare 2 strings et non 2 dates, et mon recordset n'est donc pas excact.

Auriez vous une solution?

Code:

mois_an = mois_an & "/" & an
mois_an_m = "01/" & mois_an
mois_an_p = "31/" & mois_an


Calcul_Adodc.RecordSource = "SELECT * FROM ODM WHERE dplct_dest_date>=" & mois_an_m & " AND dplct_dest_date<=" & mois_an_p
MsgBox (Calcul_Adodc.RecordSource)
Calcul_Adodc.Refresh


MsgBox (Calcul_Adodc.Recordset.RecordCount)

/code

2 réponses

BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
10 mai 2006 à 18:58
Une date dans une DB n'a pas de format, c'est un numérique comme tout le reste, en l'occurence un flottant sur 64 bits.
Fais une date = au 1 du mois voulu
ensuite
"SELECT * FROM ODM WHERE dplct_dest_date >= " & CLng(dat1)
Passera à tout coup sans se préoccuper des formats.

ciao...
BruNews, MVP VC++
3
yoh_bur
Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
9 février 2007

15 mai 2006 à 16:57
Alors, la solution passe tant que le format de mon champs dans la base de donnée est au format date.
Si je le laisse au format texte (pour eviter les erreurs entre dates < et > a 14), il me renvoie un message d'incompatibilite de types.

Je valide la solution pour les autres, il me reste a tester voir si mon bug sur les dates est soluble en gardant mon champ Access au format Date.
0