VBA Access : Différence de dates

Résolu/Fermé
arzawe Messages postés 70 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 14 septembre 2014 - 3 mars 2008 à 09:20
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 - 3 mars 2008 à 10:30
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
3 mars 2008 à 09:55
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
3 mars 2008 à 09:55
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 mardi 24 août 2004 Statut Membre Dernière intervention 14 septembre 2014 5
3 mars 2008 à 10:04
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
3 mars 2008 à 10:06
C'est parce que tu as mis "Set DatDeb = ..."

Mets donc "DatDeb = "
0
Frappe Misere Messages postés 2677 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 10 août 2011 568
3 mars 2008 à 10:09
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
3 mars 2008 à 10:30
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 mardi 24 août 2004 Statut Membre Dernière intervention 14 septembre 2014 5
3 mars 2008 à 10:18
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
3 mars 2008 à 10:21
lol, ben ça aurai été le diable que ça ne marche pas ... il a fallu s'y mettre à 3 ...

bon courage

;o)

Polux
0