VBA Access : Différence de dates

Résolu
arzawe Messages postés 71 Statut Membre -  
blux Messages postés 2058 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... :-)
--

Arzawe
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. Polux31 Messages postés 7219 Statut Membre 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
  3. arzawe Messages postés 71 Statut Membre 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
    1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      C'est parce que tu as mis "Set DatDeb = ..."

      Mets donc "DatDeb = "
      0
  4. Frappe Misere Messages postés 2702 Statut Membre 568
     
    garde ton code original et remplace juste le "j" par "d".
    parfois il est tres idiot dans les correspondances francais anglais.
    0
    1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arzawe Messages postés 71 Statut Membre 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
  7. Polux31 Messages postés 7219 Statut Membre 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