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

Access Discussion :

[VBA] Calculer la différence entre deux dates


Sujet :

Access

  1. #1
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut [VBA] Calculer la différence entre deux dates
    bonjour

    j'ai un peu de mal a coder sur visual basic et la syntaxe m'est un peu inconnu
    voila mon problème. je souhaite créer une fonction qui fasse la difference une date présent dans un formulaire et la date d'aujourd'hui!!!!
    c'est surement un jeu d'enfant pour vous!!!!!!
    comment ecrire cela sous visual basic


    ps: je travaille en access 97

  2. #2
    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 : 54
    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
    ben... disons que la fonction existe déjà dans Access, sans avoir à la coder.

    DateDiff !
    (ou DiffDate en suivant que tu es en français ou en US)

  3. #3
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    oui et je la place ou?
    excuse moi mais ce matin, "j'ai rien dans le sac"



    merci

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Dans la source de ton controle par exemple

  5. #5
    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 : 54
    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
    Citation Envoyé par T'chab
    oui et je la place ou?
    ben ... là où t'en as besoin !
    Comment veux-tu que je te réponde à une question pareille ?
    Tu ne dis pas ce que tu veux faire, pourquoi, comment, etc..

  6. #6
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    ok
    je dispose d'un formulaire qui represente des fiches véhicules
    pour chaque véhicule, il y a une date de controle technique

    a l'ouverture de l'application, un msg box doit apparaitre pour prevenir l'utilisateur de la date de controle qui arrive à echance.
    en fait il faut que je passe par une condition "si"

    si diff_date_écheance<=7 then
    msgbox:"attantion: le véhicule "0000 gg 75 doit passer au controle avant le "00/00/2006"
    fin si

  7. #7
    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 : 54
    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
    bouèf !

    Si jamais tu as plusieurs véhicules simultanément en retard ?
    Tu fais autant de msgbox ?
    Franchement ...


    Tu devrais plutôt faire une requête qui liste ces véhicules (avec un critère tout simple, c'est facile)
    Faire un état basé sur cette requête
    Dans ton formulaire d'accueil, une simple fonction CompteDom qui te dis combien de rappels il y a, et un petit bouton à côté pour ouvrir l'état.

    C'est plsu simple non ?

  8. #8
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    ok j'ai essayé ta tchnique voici mon code en sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT [CATALOGUE VEHICULE].Id_véhicule, 
    [CATALOGUE VEHICULE].Immatriculation,
    [CATALOGUE VEHICULE].Parc, [CATALOGUE VEHICULE].[Contrôle technique  (mines)], 
    Date() AS [Date du jour],
    [Contrôle technique  (mines)]-[date du jour] AS [Jours restants]
    FROM [CATALOGUE VEHICULE]
    WHERE (( [Jours restants]<8));
    pour le calcul du nombre de jour restant pas de souci, mais il ne prend pas en compte mon critère!!!!!!!
    PQ?

  9. #9
    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 : 54
    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
    et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT [CATALOGUE VEHICULE].Id_véhicule, 
    [CATALOGUE VEHICULE].Immatriculation,
    [CATALOGUE VEHICULE].Parc, [CATALOGUE VEHICULE].[Contrôle technique  (mines)], 
    Date() AS [Date du jour],
    [Contrôle technique  (mines)]-Date() AS [Jours restants]
    FROM [CATALOGUE VEHICULE]
    WHERE ([Contrôle technique  (mines)]-Date())<8;
    Tu t'es pas servi de l'éditeur (la grille) pour faire cette requête, n'est-ce pas ?

  10. #10
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    oui c'est à peu près ca mais t'inkiete pas, je vais m'y faire à cette logique SQL,
    donc la requete marche bien à présent, j'ai donc créer une zone de texte dans mon formulaire.
    en fait, il faut que je fasse executer la requete dans ma fonction, pour qu'elle soit à jour!!! et oui!!
    donc j'aurai un peu de code à faire logiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function date_echeance
    excecute requete "controle vehicule"
    countdom 
    end function
    es tu d'accord avec moi?

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pour le comptedom, tu n'as pas besoin d'éxecuter la requête. N'oublie pas que la majorité des infos se trouvent dans l'aide

  12. #12
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    Merci a a tous

    j'ai trouvé la fonction...
    je la place dans la source controle de ma zone texte
    voici ma syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    =CpteDom("*";[id_véhicule];[CONTROLE TECHNIQUES])
    hors je repasse en mode formulaire, ma zone de texte m'affiche #nom?

    quelle est l'erreur?

  13. #13
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Les trois paramètres sont de type texte.

    A priori je dirai que Controle Technique est la requete.

    ça sera donc

    =CpteDom("*";"[CONTROLE TECHNIQUES]")

  14. #14
    Membre du Club Avatar de T'chab
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 57
    Points
    57
    Par défaut
    Merci aux boss d'access!!!!

    ca fontionne très bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calcule du nombre de jours entre deux date
    Par chalcol dans le forum Oracle
    Réponses: 3
    Dernier message: 23/03/2009, 16h36
  2. [SQL] Calcul du nombre de mois entre deux dates
    Par Lolie11 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/03/2009, 11h46
  3. [SQL] calcul du nombre d'heure entre deux dates
    Par ahmedbj dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/03/2009, 12h10
  4. Réponses: 2
    Dernier message: 02/07/2007, 16h52

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