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 :

Evénement "Clic sur bouton" dans une macro ACCESS


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut Evénement "Clic sur bouton" dans une macro ACCESS
    Bonjour,

    Mon problème est le suivant : Tous les jours, à une heure quelconque qui sera précisée, ma base ACCESS doit se lancer, et faire un traitement (clic sur un bouton d'un formulaire), et tout cela de façon automatique.

    Comment cela se déroule t'il ? (je n'y connais absolument rien en automatisation d'une tâche).

    Le lancement automatique de ma base ACCESS doit-il se faire via un batch qui sera en mesure de s'exécuter tous les jours à une heure donnée ? Ensuite, pour le traitement à l'intérieur d'ACCESS (le clic sur le formulaire), dois-je faire une macro qui permet l'exécution automatique du traitement ?

    Je ne vous demande pas de réponse précise, mais plutôt un endroit où il pourrait y avoir un tuto sur le lancement automatique d'une application, en batch je suppose, qui pourrait m'aider. Je n'en ai pas trouvé, mais peut être ai je mal cherché. Puis un autre tuto sur la gestion automatique d'événèments dans ACCESS.

    Je n'arrive pas à trouver ces tutos :/

    Merci par avance si quelqu'un est en mesure de m'aider.

    Tsu

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    juin 2003
    Messages
    1 227
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : juin 2003
    Messages : 1 227
    Points : 1 550
    Points
    1 550
    Amicalement

  3. #3
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Ca a l'air effectivement d'être exactement ce que je recherche

    Merci pour ta réponse. Je tiens au courant au sujet de l'avancement (et si problèmes rencontrés)

  4. #4
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Bon béh effectivement je suis un peu perdu mais pas au niveau de l'automatisation :p, plutôt pendant la création de ma macro.

    Je m'explique :

    Je cherche à ouvrir un formulaire (Je pense qu'OuvrirFormulaire comme première action de la macro est bonne).

    Seulement ensuite, je cherche à rentrer la date de la veille dans deux champs. Là ça coince. J'ai créé vite fait un petit bouton dans mon formulaire afin de le faire automatiquement, il fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Commande12_Click()
     
    Dim Test As Date
     
    Test = Date
     
    MsgBox (Test)
     
    Me![Date-Début] = Test - 1
    Me!Date_Fin = Test - 1
     
    End Sub
    Donc comment faire pour rentrer directement la date dans les deux champs, ou comment faire pour cliquer sur le bouton à partir de la macro pour que cela se fasse de façon automatique?? Je suis un peu perdu.

    Merci à vous par avance

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    juin 2003
    Messages
    1 227
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : juin 2003
    Messages : 1 227
    Points : 1 550
    Points
    1 550
    Par défaut
    Le plus simple c'est d'utiliser les valeurs par défaut de tes champs.
    Amicalement

  6. #6
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Ayant avancé (j'ai maintenant réussi à mettre la date de la veille dans les deux champs), ma seconde question est toujours valable : Comment définir dans une macro l'événement Clic sur bouton ?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    juin 2003
    Messages
    1 227
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : juin 2003
    Messages : 1 227
    Points : 1 550
    Points
    1 550
    Par défaut
    Il ya une façon d'appeler la procédure du bouton d'un formulaire, mais je ne sais plus comment!

    Mais je crois que pour ton problème tu peux changer la procédure en une fonction publique que tu appeles dans ton macro sans difficulté.
    Amicalement

  8. #8
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Tu veux dire par là que dans ma macro je définis : ExécuterCode avec la fonction de clic sur un bouton dans une fonction d'un module ?

    En fait, je ne vois pas non plus comment faire pour créer un événement de clic sur un bouton dans une fonction :/

  9. #9
    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 : 61
    Localisation : Suisse

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

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

    Tu n'as pas besoin d'un formulaire...

    Tu crée simplement tes fonctions dans un module standard, puis tu les appelles depuis ta macro AutoExec avec l'action ExécuterCode en renseignant simplement le nom de la fonction :

    c'est tout.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  10. #10
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Quelque chose doit m'échapper.

    J'ai bien suivi le tutoriel sur Options de ligne de commande, avec un exemple d'une macro qui appelle une fonction : je l'ai bien compris.

    Seulement quand on fait une macro avec ExécuterCode, on ne peut appeler qu'une fonction. Hors le code qui est associé au bouton de mon formulaire est défini comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Commande0_Click()
     
    code....
     
    End Sub
    Et ça, je ne peux pas l'appeler dans la macro, il me dit qu'il veut une fonction.

    Tsu

    EDIT : J'arrive maintenant à sélectionner mon bouton via AtteindreContrôle. Mais je n'arrive toujours pas à cliquer dessus via la macro

  11. #11
    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 : 61
    Localisation : Suisse

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Seulement quand on fait une macro avec ExécuterCode, on ne peut appeler qu'une fonction
    Non ! tu peux faire autant d'action ExécuterCode que tu veux...

    Ne passe pas par un formulaire.

    Tu crées toutes les fonction dont tu as besoin dans un module standard, puis tu les appelles successivement (note qu'une devrait suffire).

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  12. #12
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    J'entendais par là : On ne peut pas faire appel à une procédure, mais qu'à une fonction (ou plusieurs fonctions avec plusieurs ExécuterCode)

    Je m'explique : Lorsque je clique sur le bouton du formulaire, cela fait appel à la procédure Commande0_Click(). Et dans cette procédure, j'ai du code. Donc je ne peux pas l'appeler à partir d'une fonction.

    Je suis obligé de passer par le formulaire, vu qu'il existe et que c'est l'action de cliquer sur le bouton de ce formulaire que je dois automatiser via ma macro. Car le code qui doit être exécuté par ma macro est celui compris dans la procédure événementielle du clic.

    Je ne vois pas ce que tu veux dire en fait :/ Je ne sais pas si je suis clair dans mes explications moi-même aussi.

    EDIT : Peut être la solution viendrait par l'appel d'une fonction via ExécuterCode, et dans cette fonction, il faudrait appeler la procédure du bouton ? Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function Test()
     
            Call (la procédure du formulaire). 
     
    End Function
    Comment faire pour l'appeler dans ce cas ?

  13. #13
    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 : 61
    Localisation : Suisse

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

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

    Oui, je crois que j'ai compris...

    Mais le code qui est dans la procédure sur click de ton bouton dans ton formulaire... Et bien tu le places dans une fonction dans un module...

    S'agissant d'une mise à jour de champs, tu ne peux évidemment pas te référer au formulaire, si tu n'en as plu. Donc tu passes par une requête SQL, par exemple...

    Ou tu fais exécuter une requête (QBE) de mise à jour de ta table...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  14. #14
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Je ne vois pas ce que tu veux dire quand tu parles de mise à jour de champ. Je précise que le but que je cherche à atteindre là n'est plus de mettre à jour les 2 champs de mon formulaire, mais juste à cliquer sur le bouton qui lancera tout le traitement à suivre.

    Je vais me renseigner sur les requêtes QBE.

    Tsu

    EDIT : Ah, QBE est l'assistant graphique d'aide à la création des requêtes SQL sous ACCESS si je ne me trompe pas.

    Je comprends vraiment pas en quoi une requête SQL ou QBE peut me faire cliquer sur un bouton d'un formulaire :/ je patauge là.

    Sinon j'ai essayé de recopier le code de ma procédure dans une fonction appelée par ma macro, mais tout plante presque dès le début ("Ce programme ne répond pas").

    EDIT2 : Je crois que pour la dernière ligne, je fais une grosse erreur. J'ai remplacé le Me.Date_fin (pour accéder au champ Date_fin du formulaire) par un Forms![Importation_Téléphonie].Date_fin. Mais quand je fais un msgbox de Date_fin, il ne ressort rien (Alors que dans la procédure avec Me, j'ai bien la bonne valeur).
    Donc je pense que je n'arrive pas à accéder au champ de mon formulaire. J'y travaille.

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    juin 2003
    Messages
    1 227
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : juin 2003
    Messages : 1 227
    Points : 1 550
    Points
    1 550
    Par défaut
    Citation Envoyé par Tsuna78
    Function Test()
    Call (la procédure du formulaire).
    End Function
    à la place du Call (la procédure du formulaire) tu copie tout le code de la procédure du bouton.

    tu oublie comment appelé le code d'un bouton d'un formulaire donnée.
    Amicalement

  16. #16
    Nouveau membre du Club
    Inscrit en
    mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Ouép, j'ai finalement fait de cette façon, et ça fonctionne.

    Je ne mets tout de même pas le post en résolu, car je pense qu'il y a moyen d'aller chercher le clic sur bouton dans la macro, et cela serait beaucoup plus léger.

    Merci beaucoup pour votre aide . Si quelqu'un a une idée pour permettre dans une macro l'événement de clic sur un bouton, qu'il n'hésite pas

Discussions similaires

  1. Créer un bouton "enregistrer" dans une Macro
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/08/2014, 13h04
  2. Enregister des données sur deux tables dans une base Access
    Par aziz-be dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/09/2012, 12h46
  3. [WD14] Clic sur la loupe dans une table
    Par bombseb dans le forum WinDev
    Réponses: 4
    Dernier message: 07/01/2010, 21h08
  4. [AC-2007] tri sur un champ dans une table Access
    Par hutchy33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/08/2009, 11h48
  5. Question sur les Filtres dans une table Access
    Par OobiloO dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/05/2008, 13h09

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