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 :

Combinaison de plusieurs touches [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut Combinaison de plusieurs touches
    Bonsoir,

    Je voudrais fermer un formulaire avec une combinaison de touches. Je sais le faire avec une seule touche comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if keyascii=64 then docmd.close
    par exemple, mais je n'arrive pas à combiner deux ou trois touches.

    Merci par avance pour votre aide.

    Cordialement.

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Salut

    Cela dépend de l’événement ou tu places ton code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte0_KeyDown(KeyCode As Integer, Shift As Integer)
     
    ou 
     
    Private Sub Texte0_KeyPress(KeyAscii As Integer)
    Dans le premier cas, tu as la variable Shift qui t'indique les valeurs des témoins.

  3. #3
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Merci pour ta réponse Mathieu mais je ne comprends pas. Peux-tu développer par un exemple .
    cordialement.

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Salut Gérard

    Il y a un moment ou l'aide est ton amie et la curiosité ton alliée...

    Si tu sais taper un code avec KeyAscii, c'est que tu as su créer un événement MonContrôle_KeyPress.

    Si tu as su créer un événement MonContrôle_KeyPress, tu sauras créer un événement MonContrôle_KeyPress. C'est à dire que au lieu de "sur touche activée" tu prend "sur touche appuyée" et là tu vois qu'un paramètre est là en plus : Shift

    A ce moment, tu met dans ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print KeyCode, Shift
    Tu t'arrange pour voir la fenêtre de débogage et tu lance le code pour voir ce qui se passe par en dessous quand tu tapes des touches dans ton contrôle.

    Et si tu veux programmer proprement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Debug.Print KeyCode, Shift, Shift And acShiftMask, Shift And acCtrlMask, Shift And acAltMask

  5. #5
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut
    salut Mathieu

    Merci pour le temps passé à m'aider. Tout ce que tu préconises je l'avais déjà découvert dans l'aide access ou dans divers sites. J'ai bien fouillé un peut partout.
    Je voulais simplement pouvoir fermer un formulaire avec une combinaison de touches.
    Je vais faire autrement avec un mot de passe.

    Salutations.

  6. #6
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Citation Envoyé par gerarddurand Voir le message
    salut Mathieu

    Merci pour le temps passé à m'aider. Tout ce que tu préconises je l'avais déjà découvert dans l'aide access ou dans divers sites. J'ai bien fouillé un peut partout.
    Je voulais simplement pouvoir fermer un formulaire avec une combinaison de touches.
    Je vais faire autrement avec un mot de passe.

    Salutations.
    Argh
    On s'est mal compris !

    Désolé Gérard pour l'insinuation déplacée ! J'en remet une couche tu t'es très mal expliqué !

    Je voudrais fermer un formulaire avec une combinaison de touches. Je sais le faire avec une seule touche comme
    Code :
    if keyascii=64 then docmd.close
    par exemple, mais je n'arrive pas à combiner deux ou trois touches.
    • Depuis où désire tu fermer ce formulaire ?
    • Quelle combinaison de touches ?
    • Où est ton code ?
    • Quel est ton code complet ?

    Et aussi, la macro AutoKeys, tu connais ?

  7. #7
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut
    Bonjour Mathieu T

    Bien que la discussion ait été marquée comme résolu, par politesse, je réponds à tes demandes sans attendre d'autres explications.

    Mathieu T
    Désolé Gérard pour l'insinuation déplacée ! J'en remet une couche tu t'es très mal expliqué !
    Comment mieux m'expliquer pour être plus clair que :
    Je voudrais fermer un formulaire avec une combinaison de touches. Je sais le faire avec une seule touche comme

    if keyascii=64 then docmd.close

    par exemple, mais je n'arrive pas à combiner deux ou trois touches.
    Mathieu T
    Depuis où désire tu fermer ce formulaire ?
    Sur Fermeture dans les éléments du formulaire.

    Mathieu T
    Quelle combinaison de touches ?
    Par exemple : ^{F12}

    Mathieu T
    Où est ton code ?
    Si j'avais un code à montrer je n'aurais pas posté une aide.

    Mathieu T
    Quel est ton code complet ?
    Je n'ai pas plus de code que de code complet. Maintenant si c'est le code VBA du formulaire en question voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Option Compare Database: Dim Ber As String
    Option Explicit 'frmFormFond
    '**************************************************************************
    ' Formulaire pour atténuation du fond
    ' Version avec ShowWindow pour agrandissement direct du formulaire
    '**************************************************************************
    Private Const WS_EX_LAYERED = &H80000
    Private Const LWA_ALPHA = &H2
    Private Const GWL_EXSTYLE = &HFFEC
    Private Const SW_SHOWMAXIMIZED = 3
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
                (ByVal hwnd As Long, ByVal lngWinIdx As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
                (ByVal hwnd As Long, ByVal lngWinIdx As Long) As Long
    Private Declare Function SetLayeredWindowAttributes Lib "user32" _
                (ByVal hwnd As Long, ByVal crKey As Integer, ByVal bAlpha As Integer, ByVal dwFlags As Long) As Long
    Private Declare Function ShowWindow Lib "user32" _
                (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Sub Commande7_Click()
    On Error GoTo Commande7_Click_err
     
    Dim db As DAO.Database
     Dim rst As DAO.Recordset
     Dim MAJ, MAJ1 As Date
        Set db = CurrentDb()
        Set rst = db.OpenRecordset("tblFinDeLicence")
     
            rst.MoveLast
            rst.Edit
             MAJ = rst!Quand
     
     MAJ1 = Left(MAJ, 6) & Right(MAJ, 4) + 2
     
           rst.MoveLast
           rst.Edit
             rst!findelicence = 0
             rst!Quand = MAJ1
           rst.Update
     
     rst.Close
        Set rst = Nothing
     
    DoCmd.Close
     
    Commande7_Click_exit:
    Exit Sub
     
    Commande7_Click_err:
    MsgBox err.Description, vbInformation, "Hôtellerie"
    Resume Commande7_Click_exit
     
    End Sub
     
     
    Private Sub Form_Load()
    Dim lAlpha As Long
     
    lAlpha = 255 * (Nz(Me.OpenArgs, 60) / 100)
     
    SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
    SetLayeredWindowAttributes Me.hwnd, 0, lAlpha, LWA_ALPHA
     
    ShowWindow Me.hwnd, SW_SHOWMAXIMIZED
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Me.Commande7.Visible = False
    Ber = "Mon petit Berni que j'adore."
    End Sub
     
    Private Sub Reprise_LostFocus()
    On Error Resume Next
    If Reprise = Ber Then
     
    Me.Commande7.Visible = True
    Me.Commande7.SetFocus
    Me.Reprise = Null
    End If
     
    End Sub
    Mathieu T
    Et aussi, la macro AutoKeys, tu connais ?
    Oui je connais mais je suis contre toute macro dans la base.

    encore merci de ton aide,

    Cordiales salutations.

  8. #8
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Gérard,

    Ok je laisse tomber, je crois que on ne s'est pas du tout compris.

    a+

  9. #9
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Salut mumen et gerarddurand,

    Oula... il fait chaud par ici...

    Citation Envoyé par gerarddurand
    Je vais faire autrement avec un mot de passe.
    c'est une solution comme une autre

    toutefois pour la fermeture d'un formulaire sur un ctrl & f12 il suffit simplement de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = vbKeyF12) And (Shift And acCtrlMask) Then DoCmd.Close
    End Sub
    avec la propriété du formulaire "Aperçu des touches" à "Oui"

    en revanche si c'est une combinaison avec autre que MAJ, CTRL, ou ALT... genre "a" & "b" & "c" ce n'est pas géré nativement et cela pourrait vite devenir compliqué à réaliser.


  10. #10
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut
    Bonjour Vodiem,

    Merci pour ton intervention. Je me rends compte qu'il est très simple de donner une explication quand on connait la solution.

    Encore merci
    Salutations.

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

Discussions similaires

  1. passer une combinaison de trois touche ctrl+alt+w à mon micr
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/11/2005, 19h43
  2. [LG]Combinaison de plusieurs caractères
    Par krachik dans le forum Langage
    Réponses: 15
    Dernier message: 10/02/2005, 13h18
  3. Tester l'état de plusieurs touches du clavier en même temps
    Par wikers dans le forum Composants VCL
    Réponses: 7
    Dernier message: 11/11/2004, 09h13
  4. [KeyEvent] plusieurs touches simultanées enfoncées
    Par gege2mars dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/01/2004, 11h44
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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