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 :

DateDiff : ou le mystère de la fonction qui ne fonctionne pas !


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut DateDiff : ou le mystère de la fonction qui ne fonctionne pas !
    Salut à tous !

    Je souhaite faire la différence entre 2 dates. La date d'une facture et aujourd'hui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub DAT_DFAC_AfterUpdate()
    difference = datediff("m", DAT_DFAC, Now)
    Me.difference.Requery
    End Sub
    Mais je n'arrive pas à faire fonctionner cette saleté de DateDiff !!! j'ai regardé dans la FAQ, dans le FORUM, j'ai trouvé des choses, j'ai essayé de différentes façons... mais je ne vois pas comment l'utiliser... Ca ne fonctionne pas !
    (c'est pas très gentil de rigoler )
    infos :
    difference est le nom du champ où je souhaite que la différence entre les 2 dates apparaisse
    DAT_DFAC est le nom du champ dans le formulaire en question (même nom dans la table source)
    et je souhaite bien la différence en nombre entier de mois

    Est ce que quelqu'un a plus les yeux en face des trous que moi sur ce coup là ?

    Merci beaucoup !!

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Ne serait-ce pas plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    difference = DateDiff("m", Now, DAT_DFAC)
    Domi2

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Je viens d'essayer et.... non ça ne fonctionne pas
    Ca aurait été trop beau
    Merci quand même !

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Oui, de toute façon, dans un sens ou dans un autre

    Je viens de faire un petit test dans une sub indépendante, cela a l'air de fonctionner.

    Essaie peut-être de mettre une Msgbox avant DateDiff et afficher la valeur
    de DAT_DFAC pour voir ce que cela donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub DAT_DFAC_AfterUpdate()
        MsgBox DAT_DFAC
        difference = datediff("m", DAT_DFAC, Now)
        Me.difference.Requery
    End Sub
    Domi2

  5. #5
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    Ne faut-il pas faire un


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.difference.value = datediff("m", DAT_DFAC, Now)

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    En tous cas le doit être de trop.

    Bon courage,

    PGZ

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    re

    j'crois que ya un gros n'importe quoi dans mon Access là, il n'ouvre pas de msgbox...
    Est il possible de faire la différence entre 2 dates autrement que par cette fonction ?
    avec un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim date1 As Date, date2 As Date
    date1 = Forms.Recherche_fiche_ent.DAT_DFAC
    date2 = Now
    difference = date2 - date1
    Me.refresh
    qui ne fonctionne pas non plus d'ailleurs...

    J'suis un peu perdue là... ça semble tout bête à faire à la base ! C'est frustrant

  8. #8
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    Si difference est un champ de ton formulaire il faut bien a un moment identifier ce formulaire :

    me.difference.value = tadate

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    je crois que j'ai trouvé le pb : je n'ai pas de source contrôle au champ difference.
    Est ce que cela peut en être la cause ?
    Si oui, comment la rentrer, puisque la source n'est pas ma table, mais le code...?

    PGZ : Oui, j'ai viré le Requery
    Maxi-môme, j'ai essayé ton code et je n'ai toujours rien qui s'affiche....

  10. #10
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    tu es bien sure que ton champ difference est une zone de texte et non une zone de liste ??

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    oui c bien une zone de texte
    mais comme je te dis je n'y ai pas de source définie est ce que cela pourrai etre un pb ?

  12. #12
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    Non non la source n'est pas le problème...

    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub DAT_DFAC_AfterUpdate()
    Me.difference.value = datediff("m", Me.DAT_DFAC, Now)
    End Sub

  13. #13
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Points : 119
    Points
    119
    Par défaut
    Salut !

    DAT_DFAC est de quel format?
    si ce n'est pas le meme que NOW (dd/mm/yyyy hh:mm:ss) ça devrait pas marcher

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Et bien... ça ne fonctionne toujours pas !
    Il doit y avoir un problème ailleurs...
    je reprendrai ça demain, parce que là j'ai plus les idées dans le bon ordre...

    Merci de ton aide Maxi-môme

  15. #15
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    j'crois que ya un gros n'importe quoi dans mon Access là, il n'ouvre pas de msgbox...
    Es-tu bien sure que le code est executé ?
    Si meme une msgbox ne marche pas, je vois pas d'autres raisons.

  16. #16
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    tout à fait d'accord timoth !

    Deux tests à faire :
    1. Jette un oeil dans les propriétés de ton contrôle DAT_DFAC, onglet Evènements. Vérifie que tu as bien un [procédure évènementielle] dans le Après MAJ
    2. Autre test : cliques dans ta procédure DAT_DFAC_AfterUpdate et regarde en haut du module. Est-ce que dans la liste de gauche tu as bien DAT_DFAC ou plutôt Général?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Salut,

    déjà merci de votre aide à tous !!
    Jette un oeil dans les propriétés de ton contrôle DAT_DFAC, onglet Evènements. Vérifie que tu as bien un [procédure évènementielle] dans le Après MAJ
    Oui, ça pas de pb c'était comme ça.
    Autre test : cliques dans ta procédure DAT_DFAC_AfterUpdate et regarde en haut du module. Est-ce que dans la liste de gauche tu as bien DAT_DFAC ou plutôt Général?
    en haut du module j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub DAT_DFAC_AfterUpdate()
    Et dans la liste de gauche j'ai bien de marqué :"DAT_DFAC Textbox"
    Est ce que cela répond à la question ?

    Janny : DAT_DFAC est au format Dat abrégé tout comme Difference, mon champ de destination pour DateDiff.

    Comment puis-je être sûre que mon code est éxécuté ?
    Les autres actions de mon code basées sur d'autres champs fontionnent toutes sans problème...

    Merci de votre aide

  18. #18
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    ok, rebonjour,

    tu dis que "difference" est de type date mais c'est plutot un entier non ?
    c'est le nombre de mois qui separe deux dates..?

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    salut,

    dans les propriétés de difference j'ai mis date abrégée, mais je souhaite effectivement que ça soit un nombre entier de mois.
    c'était bien vu....
    Je viens de modifier ce format en un format standard, mais cela ne fonctionne pas

  20. #20
    Membre habitué Avatar de Maxi-môme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 144
    Points : 144
    Points
    144
    Par défaut
    Décidement, pas de chance !!

    Bon, la méthode bourrin, essaye d'utiliser des date en "dur" sur la methode datediff et vois si ca te renvoie qqch ds le champ de ton form

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AJAX] fonction qui ne fonctionne pas
    Par caro71ol dans le forum AJAX
    Réponses: 19
    Dernier message: 07/02/2011, 08h34
  2. fonction qui ne fonctionne pas sous firefox
    Par megavolte dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/10/2009, 23h48
  3. Fonction qui ne fonctionne pas
    Par Herlece dans le forum PL/SQL
    Réponses: 18
    Dernier message: 12/08/2008, 16h05
  4. [javascript]fonction qui ne fonctionne pas(concernant div)
    Par ranell dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/04/2007, 17h38
  5. [Javascript] Fonction qui ne fonctionne pas sous Opera et Safari
    Par frechy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/02/2007, 10h04

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