VBA Access : Différence de dates

Résolu
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... :-)
--

Arzawe
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. Modérateur
    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 ?
    1. 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
      1. 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
        1. Modérateur
          C'est parce que tu as mis "Set DatDeb = ..."

          Mets donc "DatDeb = "
      2. garde ton code original et remplace juste le "j" par "d".
        parfois il est tres idiot dans les correspondances francais anglais.
        1. Modérateur
          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...
      3. 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 !!!
        1. lol, ben ça aurai été le diable que ça ne marche pas ... il a fallu s'y mettre à 3 ...

          bon courage

          ;o)

          Polux