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 :

Comment diminuer le nombre de lignes de code


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut Comment diminuer le nombre de lignes de code
    Bonjour,

    je vous expose mon problème:

    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub AddCritUOPrice_Click()
    Call OuvrirSelectCritere("AddCritUOPrice", "texte")
    End Sub
    Private Sub AddCritUOVersion_Click()
    Call OuvrirSelectCritere("AddCritUOVersion", "liste")
    End Sub
    Private Sub AddCritUOCPIL_SGIS_Click()
    Call OuvrirSelectCritere("AddCritUOCPIL_SGIS", "liste")
    End Sub
    J'ai deux question à propos de ce code:
    Comme vous pouvez le constater, à chaque clic sur un bouton, j'appelle une procédure. J'aurais aimé savoir s'il est possible, plutôt que de marquer à la main le nom du contrôle sur lequel je viens de cliquer, de pouvoir le récupérer.
    un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub AddCritUOCPIL_SGIS_Click()
    Call OuvrirSelectCritere(LeNomDuDernierContrôleCliqué, "liste")
    End Sub
    La deuxième question:
    Comme vous avez pu le constater, à chaque clic sur les boutons, j'effectue toujours la même action (il y a juste le nom du contrôle qui change).
    Le nombre de Sub comme celles que je vous ai écrit se compte par dizaines dans mon code.
    Existe-t-il des fonctions sur access qui feraient un truc comme ça:
    - A chaque fois que je clique sur un bouton (n'importe le quel)
    - Prends le nom du bouton
    - Appelle la procédure machin

    Tout simplement, existe-t-il des fonctions qui sont capables de remplacer des dizaines de "Sub machin_clic" en faisant un "Sub tous_les_contrôles_clic"

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Pour ta première question : as-tu déjà essayer Me.Name pour récupérer le nom du control ?

    Il n'existe pas de solution (à ma connaissance) pour la seconde question : pas de code "OnClick" qui puisse être générique.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    le problème, c'est que Me.name me renvoie le nom du formulaire, et pas le nom du contrôle sur lequel je viens de cliquer

  4. #4
    Membre éprouvé
    Avatar de wape
    Profil pro
    Inscrit en
    Février 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 90
    Par défaut
    Bonjour,

    Pour la question 1, essaye avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub AddCritUOPrice_Click()
    MsgBox "Nom du bouton : " & ActiveControl.Name
    End Sub
    Pour la question 2, oui c'est possible (en passant par un module de classe).

    wape

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    Merci, ta solution à la question 1 fonctionne à merveille

    En ce qui concerne la question 2, qu'entends-tu par "module de classe" ?

  6. #6
    Membre éprouvé
    Avatar de wape
    Profil pro
    Inscrit en
    Février 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 90
    Par défaut
    Bonjour,

    Sans trop entrer dans les détails, un module de classe permet de créer... une classe, dans
    laquelle on définit, par exemple, un ou des événement(s) commun(s) à plusieurs contrôles.

    wape

Discussions similaires

  1. [Outils] Comment compter le nombre de lignes ?
    Par ChristopheOce dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 18/04/2011, 12h36
  2. Réponses: 4
    Dernier message: 05/05/2006, 23h52
  3. Calculer le nombre de ligne de code source
    Par yanis97 dans le forum Qualimétrie
    Réponses: 4
    Dernier message: 04/07/2005, 22h02
  4. [Général] Nombre de lignes de code d'un projet
    Par bigquick dans le forum MFC
    Réponses: 7
    Dernier message: 30/03/2005, 09h14
  5. [netbeans][Linux] Nombre de lignes de codes
    Par sylvain_neus dans le forum NetBeans
    Réponses: 5
    Dernier message: 13/08/2004, 10h09

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