Problème gestion de date dans access (VBA)
Bonjour,
je travaille sur une DB source oracle où j'ai une table comprenant des périodes => date de début et date de fin.
J'ai donc une vue via access sur ma db oracle. Quand je regarde le format de ces deux zones, c'est du format date/heure. Dans les zone 'format et 'date de saisie' de la définition de la table , il n'y a rien.
Dans mon code, je souhaite faire des contrôles sur ces dates=> comparaison de ces dates avec des dates comme 1 janvier de l'année en cours, 31 décembre de l'année en cours, dernier jours du mois en cours.
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
Dim dbs As DAO.Database
Dim SAVE_DEBUTPERIODE As Date
Dim SAVE_FINPERIODE As Date
Dim premierjanvier As Date 'stocker le prmier jour de l'année
Dim finderniermois As Date 'stocker le dernier jours du dernier mois calculé
Dim findecembre As Date 'stocker le 31 décembre de l'année en cours
Dim derniermois As Integer 'stockr le numéro du dernier mois traité
Dim cas As Integer
premierjanvier = DateSerial(Year(Date), 1, 1)
findecembre = DateSerial(Year(Date), 12, 31)
finderniermois = DateSerial(Year(Date), Month(Date), 1)
finderniermois = finderniermois - 1
derniermois = (Month(finderniermois))
...dans une boucle
SAVE_FINPERIODE = rst_zy35.Fields("DATXXX") 'fin période
SAVE_DEBUTPERIODE = rst_zy35.Fields("DTEF00") 'début période
cas = 0
Select Case True
Case (SAVE_DEDUTPERIODE <= premierjanvier And SAVE_FINPERIODE > findecembre)
traite_1 = traite_1 + 1
i = 1
j = 12
If (NUDOSS_FIND = "32395") Then
MsgBox ("dans cas 1période traitée : " & SAVE_DEBUTPERIODE & " fin période : " & SAVE_FINPERIODE & "premier_janvier : " & premierjanvier)
MsgBox (" i = " & i & " j = " & j)
End If
zapper = 0
cas = 1
End Select |
Je veux faire un traitement particulier pour les records dont la date de début est avant le 01/01/2017 et la date de fin > 31/12/2017
=> mon case ci-dessus
Dans ma DB, j'ai un record avec ces données :
J'ai un record avec DTEF00 = 1/12/2017 et DATXXX = 31/12/2999
et ce record passe quand-même dans mon case????? alors que DTEF00 (SAVE_DEBUTPERIODE) est plus grand que 1/1/2017 ???
Help ,
Merci d'avance,
david