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

IHM Discussion :

Afficher message/formulaire en fonction macro [AC-2003]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 37
    Points : 23
    Points
    23
    Par défaut Afficher message/formulaire en fonction macro
    Bonjour,

    J'ai un petit soucis. Je souhaiterais que lorsque j'ouvre ma base access, un petit message ou un formulaire s'affiche en fonction d'une macro. Je m'explique :

    J'ai une table où plusieurs dates sont inscrites, par exemple, 20/07/2011, 30/07/2011 et 02/08/2011.
    Je souhaiterais que lorsque la dernière date de cette table (en l'occurence ici 02/08/2011) dépasse de X jours la date actuelle (lors de l'ouverture de la base) une petite fenetre s'ouvre avec un message à l'interieur, où on clique sur OK et cette fenetre disparait.

    Est ce qu'il est possible de créer un code, une macro pour réaliser ceci. Dans l'immédiat j'ai uniquement créé une requête qui me dit quel est la date la plus récente de ma table, mais après je ne sais pas comment faire . Je ne sais pas si on peut réaliser des opérations avec les date (IF "plus_ancienne_date" +7 < "date_actuelle" , then) quelque chose comme ça.

    Si quelqu'un peut m'aider, ça serait top

    Merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Sous access si tu appelles une macro AutoExec elle va s'exécuter à l'ouverture de ton application Access.
    Sachant que tu peut assigner à cette macro l'action RunCode (en vo) tu vas pouvoir exécuter du code à l'ouverture de ton appli.

    Tu vas donc pouvoir utiliser un code vba de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If PlusRecenteDate > date() + X Then
        msgbox "Ton petit message"
    End if
    Avec PlusRecenteDate une variable de type date qui contient le résultat de ta requête.

  3. #3
    Membre actif Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 254
    Points : 256
    Points
    256
    Par défaut
    Hello,
    tu peux effectivement passer par ta requête qui va comparer la date du jour avec ta DateX (ta date de référence).

    Dans une requete cela s'écrit en SQL

    Ça donnera quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VerifDate : IIf([DateX] + 7 >Date();"La date est passée de 7 jours";"Date Ok")
    Attention cela est basé sur la date de ton CPU, donc si quelqu'un change la date du PC, cela contourne le code.
    En un mot si c'est une protection que tu veux faire cela est facilement contournable.

    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

    Albert Einstein

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Ok dac, je vais essayer avec ces pistes, je vous tiens au courant.

    Non c'est pas pour une protection, juste un message de rappel si jamais au bout de 7 jours une tache précise n'a pas été faite

    EDIT : Bon je vais essayer de partir sur la requête, la première solution j'arrive pas J'ai deja une macro Autoexec, donc à la suite des différentes opérations deja existantes je fais "Executercode", et la lorsque je clique en bas (sur les 3 "petits points") il m'ouvre un générateur d'expression... Alors que je souhaite inscrire du VBA.

    Par contre pour la requête, il y quelque chose que je dois mal faire, il me dit que la fonction If est non définie. (voir image jointe). Par contre dans le cas de la requête comment faire pour qu'elle s'ouvre au lancement de la base ?
    Images attachées Images attachées  

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    On te demande simplement de choisir une fonction (vba) à exécuter.
    Bien sûr, cette fonction doit être préalablement écrite dans un module.

    PS : je n'ai pas regardé ta pièce jointe mais déjà il s'agit de la fonction Iif et non if (if est un mot clé et non une fonction)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Ah ok, autant pour moi, merci de ton aide, je vais réessayer ça.

    Ah pardon, je pensais que c'était une faute de frappe de Seawolf . Punaise, j'en ai des choses à apprendre

  7. #7
    Membre actif Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 254
    Points : 256
    Points
    256
    Par défaut
    il faut que tu mette cela dans le champs, pas dans le critère, tu crée une nouvelle colenne à coté de celle de date et tu tapes le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VerifDate : IIf([DateX] + 7 >Date();"La date est passée de 7 jours";"Date Ok")
    Ensuite ton champ "Date" tu l'as appelé "Date", normal me diras tu.
    Mais tu ferais mieux de le renommer.
    Sinon si tu continue ton développement ensuite sur un formulaire, en VBA, il risque de s'emmeler les pinceaux entre ton champ "Date" et la fonction Date.
    C'est pour cela que dans mon exemple je l'ai appelé "DateX".

    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

    Albert Einstein

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Impec Seawolf, me reste plus qu'a réussir à ouvrir le formulaire associé à la requête lors de l'ouverture de la base (dans la macro Autoexec ça devrait pas poser trop de soucis) et ça va le faire, impeccable ! Thank you

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/08/2011, 12h16
  2. afficher champs formulaire en fonction d'un bouton radio
    Par pod1978 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/04/2009, 11h50
  3. Afficher un formulaire en fonction d'une var
    Par noratec dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/07/2007, 13h55
  4. Afficher un message sans arrêter une macro
    Par bybelos33 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/06/2007, 14h03
  5. Formulaire message alerte en fonction d'un test
    Par arnogef dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2007, 09h38

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