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 :

Affecter code à une touche


Sujet :

IHM

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut Affecter code à une touche
    Bonjour,

    J'ai un formulaire " agenda" qui contient un sous formulaire "sub_agenda", dans lequel j'ai trois onglets "perso_a", "pers_b" et "perso_c"
    voila ce que j'aimerais faire,
    Affecter à la touche {F10} "perso_a"
    Affecter à la touche {F11} "perso_b"
    Affecter à la touche {F6} "perso_c"
    Est-ce possible?

    Merc d'avance pour votre aide

  2. #2
    Membre éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Par défaut
    bonjour,

    oui oui, c'est tout à fait faisable
    Dans le code vba, tu as un évènement du genre KeyPress, ou KeyDown de ton formulaire.
    Et la tu teste si la touche appuyée est l'une de tes 3 touches.
    Si c'est f10, tu affiches l'onglet "perso_a" etc...

    Tu vois comment faire ?

  3. #3
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    Tu vois comment faire ?


    Pour cela la est encore le meilleur endroit:
    http://access.developpez.com/faq/?pa...efActionTouche

    Bonne recherche....et lecture..

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonjour,

    Merci à vous deux, pour vos réponses, mais (car il y a un mais), ça ne fonctionne pas, je ne vois pas ou j'ai bien pu me tromper.
    Donc sur les propriétes de mon formulaire "Agenda"
    "AperçuTouches" oui
    Su Touche Appuyée j'ai entré ceci:

    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 Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyF10
          Me![CtlTab0].Pages(0).SetFocus
        Case vbKeyF11
          Me![CtlTab0].Pages(1).SetFocus
        Case vbKeyF6
          Me![CtlTab0].Pages(2).SetFocus
        Case Else
          Exit Sub
      End Select
     
    End Sub
    Si vous voyez quelque chose qui cloche

    Merci d'avance

  5. #5
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Plutôt que le focus, essaye peut-être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Case KeyCode
    Case vbKeyF10
    DoCmd.GoToControl "NomPageOnglet"
    où "NomPageOnglet" est la propriété nom de ta page.

    Domi2

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonjour,

    Je te remercie domi2 , mais ca ne foctionne pas en fait je n'ai aucun message d'erreur , c'est comme s'il se passait rien

    Merci

  7. #7
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Je viens de tester ce petit bout de code

    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
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
        'Inactivation des touches Page Up et Page Down
        If KeyCode = vbKeyPageUp Or KeyCode = vbKeyPageDown Then
     
            KeyCode = 0
     
        End If
     
        If KeyCode = vbKeyF10 Then
     
            DoCmd.GoToControl "Infos revenus I"
     
        End If
     
    End Sub
    Ca fonctionne parfaitement...

    La propriété Aperçu des touches est bien à oui ?

    Et attention "Infos revenus I" est le nom de la page de l'onglet que je souhaite atteindre.

    Essaie peut-être d'abord de simplifier ton code avec une seule touche et affichage d'une msgbox, par exemple, pour voir déjà si tu interceptes bien l'événement...

    Domi2

  8. #8
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut Rectification
    --------------------------------------------------------------------------------

    Bonjour,

    Je suis désolé ma description n'etait pas compléte
    J'ai un formulaire " agenda" qui contient un sous formulaire "sub_agenda", dans lequel j'ai trois onglets "perso_a", "pers_b" et "perso_c";
    Dans l'onglet "perso_a" j'ai un formulaire "A"
    Dans l'onglet "perso_b" j'ai un formulaire "B"
    Dans l'onglet "perso_c" j'ai un formulaire "C"

    voila ce que j'aimerais faire,
    Affecter à la touche {F10} "perso_a"
    Affecter à la touche {F11} "perso_b"
    Affecter à la touche {F6} "perso_c"
    Est-ce possible?

    Merc d'avance pour votre aide

  9. #9
    Faw
    Faw est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Par défaut
    Salut, pas de raison que ça ne marche pas avec .SetFocus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Ctlonglet.Pages(1).SetFocus
    Mais si l'événement est déclanché depuis le form parent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.NomduControleSousFormulaire.form!Ctlonglet.Pages(1).SetFocus

  10. #10
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonsoir,

    Je n'y comprend plus rien du tout, j'ai éssayé sur un formulaire qui contient un sous formulaire avec trois onglets , avec le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
       Case vbKeyF10
         Me.CtlTab0.Pages(0).SetFocus
       Case vbKeyF8
         Me.CtlTab0.Pages(1).SetFocus
       Case vbKeyF6
         Me.CtlTab0.Pages(2).SetFocus
         End Select
    End Sub
    End Sub

    ça fonctionne à merveille, mais dés que je mets un formulaire dans chaque onglet ca plante, par exemple

    Formulaire "A" dans onglet Page1
    Formulaire "B" dans onglet Page2
    Formulaire "C" dans onglet Page3
    Je joins une base avec l'exemple

    Merci
    Fichiers attachés Fichiers attachés

  11. #11
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonsoir,
    Sur ton formulaire principal, qui comporte ton sous-formulaire avec ton contrôle onglet.....il ne faut pas oublier de mettre :
    Apercu des touches = Oui

    Tu verras cela fonctionne beaucoup mieux...

  12. #12
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonsoir,

    Ca ne fonctionne toujours pas, j'ai fait comme tu m'as dit FreeAccess mais j'ai aucun résultat je joins la base avec les formulaires A B C inclus dans les onglets

    Merci
    Fichiers attachés Fichiers attachés

  13. #13
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Ce n'est pas la peine, je l'ai déjà fait......

    Correction: Comme te le suggéré déjà Faw, il faut :

    -1-Sur événement "Sur touche appuyée" du Form "Agenda":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
       Case vbKeyF10
    'Ici on référence à partir du form parent, donc bien préciser que le contrôle concerné se trouve sur ton sous-formulaire
         Me.Sub_Agenda.Form!CtlTab0.Pages(0).SetFocus
       Case vbKeyF8
         Me.Sub_Agenda.Form!CtlTab0.Pages(1).SetFocus
       Case vbKeyF6
         Me.Sub_Agenda.Form!CtlTab0.Pages(2).SetFocus
         End Select
    End Sub
    -2- Mettre "Apercu des touches" = Oui

    -3- Le code sur "Sub-Agenda" n'est plus necessaire.

    Par contre, attention:
    -l'utilisation de la touche F10 n'est pas une bonne idée, car à chaque fois tu provoqueras l'accés au menu....
    -pourquoi, faire un sous-formulaire pour contenir uniquement un contrôle Onglet, qui lui même contiendras un sous-formualire dans chaque Page .....Mets directement ton contrôle onglet sur ton Form principal.
    -de plus pourquoi utilser des onglets si tu veux les activer par l'action d'une touche

    Teste voir tout cela...et je pense que tu peux faire plus simple et donc plus efficace...

  14. #14
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonsoir,

    J'ai recopié ce code sur
    Sur événement "Sur touche appuyée" du Form "Agenda":
    j'ai mis "Apercu des touches" = Oui
    j'ai supprim le code sur "sub_agenda"
    toujours pareil ça ne fonctionne pas, j'ai changé de touche F3 F6 F8

  15. #15
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Ok, comme il commence à ce faire tard......

    Je te joins ta base corrigée.....(avec touche F9 / F8 / F6)
    Attention, je l'enlève dès demain....

    Bonne fin de nuit...

  16. #16
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonjour,

    J'ai téste la base corrigée ,mais chez moi il ne se passe rien quand j'appuie sur les touches F6, F8, F9,
    je joins ma base avec la table "tmp_Agenda" que j'avais oublié

    Merci
    Fichiers attachés Fichiers attachés

  17. #17
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonjour,

    J'ai un formulaire " agenda" qui contient un sous formulaire "sub_agenda", dans lequel j'ai trois onglets "F10", "F8" et "F6";

    Dans l'onglet "F10" j'ai un formulaire "A"
    Dans l'onglet "F8" j'ai un formulaire "B"
    Dans l'onglet "F6" j'ai un formulaire "C"

    voila ce que j'aimerais faire,
    Affecter à la touche {F10} à l'onglet "F10"
    Affecter à la touche {F8} à l'onglet "F8"
    Affecter à la touche {F6} à l'onglet "F6"
    Est-ce possible?
    Y aurait-il une âme charitable pour tester mon probléme en lancant le formulaire "Agenda" . Ma base est dans le post précédant

    Merci

  18. #18
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    FreeAccess a dit

    -pourquoi, faire un sous-formulaire pour contenir uniquement un contrôle Onglet, qui lui même contiendras un sous-formualire dans chaque Page .....Mets directement ton contrôle onglet sur ton Form principal.
    Tu devrais déjà commencer par là, tu te simplifierais la vie...

    Domi2

  19. #19
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Bonjour,

    Pourquoi j'ai un sous-formulaire qui contient des onglets qui eux contiennent aussi des formulaires dans un formulaire?
    Tout simplement parce que j'ai un calendrier dans mon formulaire principale qui met a jour le sous-formulaire quand on clique sur une date

  20. #20
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    En premier, j'ai bien regardé la deuxième base........Pourquoi change-tu systématiquement ce que l'on te conseille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case vbKeyF8
         Me.Sub_Agenda.Form!CtlTab0.F8.SetFocus
    Hier dans ma correction (qui fonctionne très bien chez moi), je faisais référence à la page de l'onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case vbKeyF8
         Me.Sub_Agenda.Form!CtlTab0.Page(1).SetFocus
    Ensuite (sans vouloir insister.... ) et comme le souligne également Domi2, tu peux très bien mettre sur ton Form principal un contrôle Onglet et un calendrier....je ne vois pas se qui t'en empêche
    Ensuite dans chacunes des pages du contrôle Onglet, tu mets tes Sous-Form....
    Donc au risque de me répéter, va au plus simple.....Bonne continuation.

Discussions similaires

  1. exécution d'un code suite à l'appui d'une touche
    Par saraenim dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2008, 12h30
  2. Affectation code VBA dans une feuille xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2007, 13h52
  3. Réponses: 3
    Dernier message: 11/10/2006, 14h25
  4. [Key.isDown] Controler une touche avec code ascii
    Par arnolem dans le forum Flash
    Réponses: 3
    Dernier message: 30/01/2006, 14h34
  5. Code ASCII d'une touche sous Mozilla
    Par SPA dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2005, 08h47

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