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 :

Bouton qui renvoi son nom comme valeur dans un champ idépendant [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Bouton qui renvoi son nom comme valeur dans un champ idépendant
    Bonjour à tous,

    Je débute dans Access et j'ai grandement besoin de votre aide.
    Je cherche un code qui me permet lorsqu'on click dessus de renvoyer son nom dans un champ libre.
    Le nom de mes boutons est de la forme S1234567

    J'ai bien réussi à le faire "en dur" de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub S5963560_Click()
     
    Forms![frm_liste_dmr].ztx_liste_dmr.Value = Forms![frm_liste_dmr].ztx_liste_dmr.Value & Me.S5963560.Name & vbCrLf
     
    End Sub
    Mais j'ai qqu centaines de ligne à faire à la main... De plus le système n'est pas évolutif, j'essaye donc de faire une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 1)
            Case "S"
                            ctl.OnClick = MsgBox("test")
        End Select
    Next ctl
    Mais ca ne fonctionne pas et je ne sais pas comment renvoyer le nom.
    Je suis un peu à court d'idée et tout faire à la main va me prendre bcp bcp de temps.
    Si vous avez des idées je suis prenneur.

    Par avance merci
    McGyver du VBA
    Nico

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    C'est une piste pas une solution mais je regraderai du côté du click sur le formulaire en récupérant via une api la position x,y du curseur et en la comparant avec la position des boutons.

    Sinon tu pourrais peut-être assigner une fonction à OnClick de chacun de tes bouton

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function TraiterClickBouton()
       msbox [screen].[ActiveControl].name
    end function
    et dans la propriété OnClick

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    merci pour la piste mais ça me parait compliqué d'autant que lors d'évolution mes boutons seront amenés à bouger. Sans compter que je serais incapable de coder qqc avec une api...

    Merci
    A+

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Il te reste l'option du OnClick et de la fonction qui récupère le controle courrant.

    En sélectionnant tous les boutons qui t'interessent tu peux définir la propriété en une seule fois.

    Mais personnellement si tu es obligé de modifier trop souvant ton interface, il faut peut-être songer à un autre type d'interface, ex : une liste déroulante que tu pourrais paraméter.

    Évidement tout dépend de tes besoins.

    A+

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Merci Marot,

    J'ai touvé une solution temporaire, j'ai fait une macro excel qui m'écrit toutes mes lignes de code à partir de la liste de nom de mes controles.
    Oui c'est vraiment du Mc Gyver mais ca marche et c'est moins long qu'à la main
    Cela dit une fois mon projet terminé je le posterai pour le soumettre à "correction" par les amateurs !

    Merci encore à ce formidable forum
    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/10/2013, 12h36
  2. Réponses: 2
    Dernier message: 21/12/2012, 13h14
  3. Bouton qui renvoie une valeur
    Par Daniela dans le forum VBA Access
    Réponses: 4
    Dernier message: 04/06/2009, 11h34
  4. Boutons radio et transmission de leur valeur dans un champ texte
    Par Corinne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/07/2007, 09h56
  5. [Excel] Bouton qui perd son nom
    Par steps5ive dans le forum Excel
    Réponses: 2
    Dernier message: 21/03/2007, 13h42

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