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 récupérer les étiquettes de outes mes listes de tous les formulaires de ma base [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut Comment récupérer les étiquettes de outes mes listes de tous les formulaires de ma base
    Bonjour,

    Je souhaiterai lister dans une table l'ensemble des etiquettes de tous les contrôles de tous les formulaires de ma base de données. L'idée étant de permettre un remplacement systématique de tout quand on passe a une autre langue.

    Je parviens sans problème à lister toutes les étiquettes qui ne sont rattachées à aucun controle. Mais dès que j'ai une listbox ou un textbox (je souhaite accéder au nom et au caption de l'étiquette ratachée au contrôle), ma routine se plante sur CStr(Ctrl.Caption).
    J'ai essayé en remplacant Ctrl.ControlType = acListBox par Ctrl mais ça ne change rien

    Ca doit être trivial mais je ne vois pas, même après moultes recherches sur le forum. Auriez-vous une idée, svp?


    Je vous remercié.

    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
    Private Sub Command0_Click()
    Dim oDb As DAO.Database
    Dim obj As AccessObject
    Dim frm As Form
    Dim Ctrl As Access.Control
    Dim rst As DAO.Recordset
     
     
    Set oDb = CurrentDb
    'Lance la création de la table dico si besoin
    CreerTableDico oDb
    'ouvre un recordset sur la table, il faut qu'elle soit créée au préalable
    Set rst = oDb.OpenRecordset("tblFrmctrl")
     
    For Each obj In Application.CurrentProject.AllForms
        'Demande confirmation pour le formulaire en question
        'Select Case MsgBox("Formulaire : " & obj.Name, vbQuestion + vbYesNoCancel)
        'si OUI
        'Case vbYes
          'Ouvre le formulaire en mode création
            DoCmd.OpenForm obj.Name, acDesign
            Set frm = Forms(obj.Name)
           'Applique le propriété à chaque controle
            For Each Ctrl In frm.Controls
                If Ctrl.ControlType = acListBox And Ctrl.Parent.Name = frm.Name Then
                    'Enrichit la table du dictionnaire
                    rst.AddNew
                    rst.Fields("FrmName") = CStr(Ctrl.Parent.Name)
                    rst.Fields("CtrlName") = CStr(Ctrl.Name)
                    rst.Fields("CaptionFr") = CStr(Ctrl.Caption)
                    rst.Fields("CaptionNl") = "xxxxx"
                    rst.Update
     
                End If
            Next Ctrl
            'Enregistre et ferme le formulaire
            DoCmd.Close acForm, obj.Name, acSaveYes
        'Si annuler alors, quitter le traitement
        'Case vbCancel
        '    Exit Sub
        'End Select
    Next obj
     
    rst.Close
    Set rst = Nothing
    Set oDb = Nothing
    End Sub

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut
    Bon j'ai résollu le problème en remplacant ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Ctrl.ControlType = acLabel And Ctrl.Parent.Name = frm.Name Then
    par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                If Ctrl.ControlType = acLabel Then
    Désolé pour le dérangement.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/01/2008, 17h50
  2. Réponses: 2
    Dernier message: 31/10/2007, 14h26
  3. Comment récupérer le texte sélectionné dans une liste déroulante ?
    Par Je-cherche-pfe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2007, 20h35
  4. Active directory : Comment extraire la liste de tous les contacts?
    Par Asriel01 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 12/07/2007, 12h32
  5. Réponses: 7
    Dernier message: 28/06/2007, 11h08

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