VBA Access : Différence de dates

Résolu
arzawe Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je ne comprends pas pourquoi mon code ne fontionne pas :

Dim DatDeb
Dim DatFin

Dim Duree As Variant

Dim bdd As Database
Dim CritSel As TableDef
Dim RstDate As Recordset

Set bdd = CurrentDb
Set CritSel = bdd.TableDefs("Critère de sélection")
Set RstDate = bdd.OpenRecordset("Critère de sélection", dbOpenDynaset)
Set DatDeb = RstDate![Date de début]
Set DatFin = RstDate![Date de fin]

Duree = DateDiff("j", DatDeb, DatFin)+1

MsgBox Duree

Il me renvoie le message suivant :
Erreur d'exécution 5
Argument ou appel à procédure incorrect

Je ne comprends pas, c'est pourtant une fonction que j'utilise souvent. C'est peutêtre parce que c'est lundi et que je suis mal réveillée... :-)

6 réponses

blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

pourquoi tu mets "set DatDeb" ? le set indique que l'on est en présence d'un objet et non d'une variable...
pourquoi n'as-tu pas déclaré datedeb en date ? dans ce cas, c'est un variant...
l'erreur est sur quelle ligne ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
bonjour,

Dans ton code tu n'as pas déclaré le type de variable de :

Dim DatDeb ???
Dim DatFin ???

Ca vient peut être de là.

;o)

Polux
0
arzawe Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   5
 
Si je remets as date après les DatDeb et DatFin, il me dis pour set DatFin : Objet requis

Le message d'erreur initial était sur
Duree = DateDiff("j", DatDeb, DatFin)+1
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
C'est parce que tu as mis "Set DatDeb = ..."

Mets donc "DatDeb = "
0
Frappe Misere Messages postés 2678 Date d'inscription   Statut Membre Dernière intervention   568
 
garde ton code original et remplace juste le "j" par "d".
parfois il est tres idiot dans les correspondances francais anglais.
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Non, il est TOUJOURS stupide dans ces cas-là !

Rien qu'à voir les dates dans les requêtes, en format #british# avec le point décimal qui se transforme en virgule...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arzawe Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   5
 
Bon, je vous remercie tous.
J'ai enlevé les set devant DatDeb et DatFin, et j'ai remplacé "j" par "d", et ça marche.

Merci, merci, merci !!!
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
lol, ben ça aurai été le diable que ça ne marche pas ... il a fallu s'y mettre à 3 ...

bon courage

;o)

Polux
0