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 :

Boîte Message à 2 boutons sur Acess


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Boîte Message à 2 boutons sur Acess
    Bonjour,
    Je n'arrive pas à coder en VB une instruction simple qui réaliserait ceci:

    Un message s'affiche : "Voulez-vous vraiment quitter Access ?" avec 2 boutons OK et Annuler (ça peut aussi le faire avec Oui et Non).
    Si l'utilisateur clique sur OK (ou Oui), il quitte Access. S'il quitte sur Annuler (ou Non), il ne se passe rien.

    Quelqu'un pourrait m'écrire les quelques lignes qui vont bien.

    NB : Je n'ai pas trouvé de Macro Access qui fasse ça. Donc il faut l'écrire en VB.

    Merci !

  2. #2
    Expert éminent sénior
    Bonjour PurgonPierre,
    NB : Je n'ai pas trouvé de Macro Access qui fasse ça. Donc il faut l'écrire en VB.
    cela peut s'écrire en Macro Access mais il faut connaitre la syntaxe, ce qui n'est pas évident au premier abord.

    En premier lieu, il faut connaitre la codification des boutons du message, il faut donc avoir lu la documentation de la fonction Msgbox (BoîteMessage en français, puisqu'on est dans l'environnement Macro et de ce fait l'interface est dans la langue locale) et plus particulièrement les parties Paramètres et Valeurs de Retour.

    Il faut également noter qu'un exemple est fourni pour l'utilisation de la fonction en VBA (Visual Basic for Applications) et non pas VB (Visual Basic) qui est un autre langage même si ils ont beaucoup de similarités.

    Pour convertir ce qui suit en macro Access
    "Voulez-vous vraiment quitter Access ?" avec 2 boutons OK et Annuler

    voici ce qu'il faut taper:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    BoîteMsg("Voulez-vous vraiment quitter Access ?";1+32+256;"Quitter")=1


    mais il faut d'abord sélectionner l'action Si et cliquer sur l'icône générateur d'expression:



    sélectionner ensuite la catégorie Messages des fonctions intégrées et choisir BoîteMsg



    remplacer le texte du générateur par le code fourni plus haut, puis ajouter l'action QuitterAccess avec l'option Quitter
    La macro est terminée. Si on appuie sur Annuler il ne se passera rien puis qu'il ne doit rien se passer ...




    Un dernier écran pour une meilleure compréhension:


    puisque dans l'environnement Macro Access les constantes VBA ne sont pas connues il suffit de se reporter à la documentation de la fonction pour remplacer ces constantes par leur équivalent numérique.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  3. #3
    Membre habitué
    Bonjour,

    En complément de la réponse de tee_grandbois ;
    En VBA en affectant ce bout de code à un bouton :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub quitter_Click()
    Dim reponse As String
    reponse = MsgBox("Voulez-vous vraiment quitter Access ?", vbOKCancel)
    If reponse = vbOK Then
       Quit
    End If
    End Sub

  4. #4
    Nouveau Candidat au Club
    Boîte message avec 2 boutons sur Access
    Bonjour,

    Merci à tee-grandbois de cette réponse rapide, claire et précise !

    Pour le code, j'ai trouvé une réponse sur ce même forum, mais dans le domaine Excel. Le code suivant fonctionne également en affectant un bouton Access. Je n'ai pas testé celui de Volsan qui fonctionne sans doute également.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande19_Click()
    If MsgBox("Voulez vous vraiment quitter Access ?", vbYesNo, "Demande de confirmation") = vbYes Then
            Quit
        End If
    End Sub


    Mais le fait de pouvoir programmer une boîte message de ce type avec une macro Access put intéresser tous ceux qui comme moi ne sont pas très à l'aise avec les codes VBA et VB, d'autant que l'on peut facilement transformer une macro en code VBA ; l'inverse non...

    Merci de votre aide.
    Pierre

###raw>template_hook.ano_emploi###