IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

date argument type incompatible


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut date argument type incompatible
    Bonjour à tous,

    Voila j'ai un problème avec une date passée en parametre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Sub addD(dateA As String, dateD As String)
    Dim date1, date2 As Date
     
    date1 = "#" & Format(dateA, "mm/dd/yyyy") & "#"
    date2 = "#" & Format(dateD, "mm/dd/yyyy") & "#"
     
    fonctionA ( date1, date2)
    ....
    Et lorsque j'execute cela j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     type d'argument ByRef incompatible
    Or si j'appel ma fonctionA de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonctionA(#12/12/2004#, #03/24/2006#)
    Tout fonctionne tres bien......

    Et si j'affiche le contenu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(dateD, "mm/dd/yyyy")
    dans le premier listing de code, cela affiche correctement la date.

    Je ne comprend pas. Merci pour votre aide !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FonctionA(CDate(DateA),CDate(DateB))
    devrait résoudre le problème.

    Prends bien garde à tester des cas comme 01/02/2007 pour être sur que tu récupère bien le 02 janvier 2007 et pas le 1er février !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    J'ai maintenant une simple erreur : 'incompatibilité de type' sur l'appel de ma fonction....

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    En fait le problème c'est que ma date dateD peut être nulle....

    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim date2 As Date
    date2 = CDate(Format(Nz(dateD), "mm/dd/yyyy"))
    Mais il me fait toujours l'incompatibilité de type à la seconde ligne....

    Avez vous une idée ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 107
    Points : 66
    Points
    66
    Par défaut
    Dim date1, date2 As Date
    Date1 n'est pas déclarer comme type Date...enfin je crois...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Oui excusez moi c'est une erreur de ma part, en recopiant ici, mais cela ne change rien....

    J'ai essayé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If IsDate(dateD) Then
        dateD = CDate(dateD)
    Else
        dateD = Null
    End If
    Mais cela ne marche pas non plus, à la ligne dateD = null il me fait une erreur : "utilisation incorrecte de null"

Discussions similaires

  1. [XL-2007] type d'arguments ByRef incompatible
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/04/2019, 19h31
  2. [AC-2007] Type d'argument ByRef incompatible dans un module
    Par KIK83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/12/2009, 15h01
  3. [VB]type d'arguments byref incompatibles
    Par kantelise dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/04/2006, 08h56
  4. Recordset et Date : Types incompatibles !
    Par priest69 dans le forum Access
    Réponses: 5
    Dernier message: 08/11/2005, 10h38
  5. ODBC Access => Type Incompatible avec un champ DATE ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 23/04/2005, 02h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo