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

Contribuez Discussion :

Changer le nom des étiquettes pour Etiquette_NomControl


Sujet :

Contribuez

  1. #1
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut Changer le nom des étiquettes pour Etiquette_NomControl
    Bonjour à tous.

    Lorsqu'on utilise l'assistant de création de formulaire en mode feuille de données de Access 2010 (cela doit être vrai pour 2007 et 2013 mais je n'ai pas vérifié)
    les noms des étiquettes sont ÉtiquetteX ou X est un numéro séquentiel.

    Parfois il est pratique que le nom de de l'étiquette indique le contrôle auquel elle est attachée.

    Ici du code qui fait cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Test_ModifNomLabel()
        Call ModifNomLabel("NomVotreFormulaire")
    End Sub
    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
    Private Sub ModifNomLabel(prmNomForm As String)
        DoCmd.OpenForm prmNomForm, acDesign
     
        Dim f As Form: Set f = Forms(prmNomForm)
     
        Dim l As Label
        Dim c As Control: For Each c In f.Controls
     
            If c.ControlType = acLabel Then
     
                Set l = c
     
                'Debug.Print l.Name, l.Parent.Name
     
                If l.Parent.Name <> f.Name Then
                    l.Name = "Etiquette_" & l.Parent.Name 'Ici le nouveau nom
                End If
     
            End If
     
        Next c
     
        DoCmd.Close acForm, prmNomForm, acSaveYes
     
        Set f = Nothing
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  2. #2
    Membre éprouvé
    Femme Profil pro
    Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Inscrit en
    Août 2017
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 358
    Points : 931
    Points
    931
    Par défaut Je note...
    Merci marot_r, quand on a besoin de maintenir une base où tous les contrôles portent des noms non significatifs, on s'arrache les cheveux.
    Fort utile notamment quand il faut coder des libellés variables pour les étiquettes.

    J'aimerais faire la même chose sur des contrôles (texte, listes...) associés à des données mais cela me semble sensiblement plus compliqué. Le renommage en soi devrait aller, en attribuant un nom significatif selon le type de contrôle et la source de données (normalement dans mon contexte les tables ont des noms de colonne "propres", pas d'accents ni de blancs). Mais l’intérêt serait alors de renommer, au moins dans le code du formulaire, les références au contrôle, et les procédures qui lui sont associées. Peut-on le faire avec VBA ? De plus, dans plusieurs occasions où j'ai fait le renommage "à la main", les propriétés de type "événement" du contrôle étaient vides après mon renommage (renommage du contrôle et des sub, j'entends) ; il suffisait de re-cliquer sur la propriété pour rétablir la liaison. Mais j'ignore s'il s'agissait seulement d'un problème IHM ou si le lien était vraiment perdu, et si dans ce dernier cas il existait une méthode VBA pour le rétablir.

    Cordialement,
    Paraffine.
    Les problèmes sont des opportunités en vêtements de travail. Henry H. Kaiser
    Il n'est pas de problème dont une absence de solution ne finisse par venir à bout. Henri Queuille

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Oui c'est faisable en VBA mais c'est beaucoup plus complexe car on ne peut pas se baser sur une substitution au cas où 2 contrôles aurait des noms semblables.
    On peut manipuler le VBA avec du VBA et il va falloir faire un mini interpréteur de texte pour découper les mots comme il faut.
    Ex : dans btnXYZ_Click il faut identifier btnXYZ et ne pas le confondre avec btnXYZ_W.
    Et il ne faut pas oublier que les noms des contrôles dans les formulaires peuvent aussi servir de paramètre et dans des champs calculés à des requêtes et à dans champs calculés dans d'autres formulaires ou rapports.
    Bref il y a plein de cas à considérer.

    Tu as un exemple de code pour changer un module ici :

    Replace Module Text in MS Access using VBA
    https://stackoverflow.com/questions/...cess-using-vba

    Personnellement je l'ai toujours fait à la main quand j'en ai eu besoin ou j'ai vécu avec.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [Batch] Script ou commande dos pour changer le nom des fichiers
    Par MR-SMOOT dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 03/09/2014, 11h11
  2. Script pour changer le nom des fichiers
    Par MR-SMOOT dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 30/08/2014, 16h26
  3. Réponses: 4
    Dernier message: 29/09/2006, 12h21
  4. [XSLT] Changer le nom des éléments...
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 14/11/2005, 11h00
  5. DBGrid - changer le noms des entête de colonnes ?
    Par safab dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/11/2004, 16h49

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