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 : Sélectionner tout - Visualiser dans une fenêtre à part
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