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 accéder aux propriétés de l'onglet "Liste de choix" d'un champ donné dans une table donnée ? [AC-2016]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Comment accéder aux propriétés de l'onglet "Liste de choix" d'un champ donné dans une table donnée ?
    Bonjour,

    Quelqu'un saurait-il comment lire via VBA les informations que l'on peut voir sur l'onglet "Liste de choix" d'un champ donné d'une table donnée (lorsque cette dernière est en mode Design) ???
    En particulier je cherche à connaitre via VBA le nom du formulaire que l'on utilise pour éditer les données.

    A titre de comparaison, dans un formulaire, j'aurais une combobox (appelons là ma_combo_box) dans lequel j'aurais défini la propriété 'Formulaire Modifier les éléments de liste' de l'onglet 'Données' ; je peux retrouver le nom de ce formulaire en faisant appel à la propriété ma_combo_box.ListItemsEditForm.

    Mais pour les tables, rien à faire, je ne comprends pas comment passer d'un champ de la table (objet Field DAO) à des propriétés présentes sur l'onglet "Liste de choix".

    Si quelqu'un a une piste ...

    Je vous remercie par avance,
    Angéline

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut combox box en table design

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Lister les propriétés d'affichage d'un champ d'une table : "DisplayControl", "ListItemsEditForm"
    Merci pour ta réponse Zekraoui_Jakani, mais je veux seulement consulter les propriétés du champ de ma table, sans les modifier. D'autre part, le SQL ne me permet pas d'accéder aux propriétés d'affichage du champs (en tout cas, je n'ai rien vu de tel).

    J'ai finalement réussi avec un exemple tel que :
    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
    Public Sub test()
    On Error GoTo Err_test
     
    Dim db As DAO.Database
    Dim tbl As DAO.TableDef
    Dim fld As DAO.Field
    Dim prop As DAO.Property
    Set db = CurrentDb()
    Set tbl = db.TableDefs("Famille")
    For Each fld In tbl.Fields
        Debug.Print "-------- ", fld.Name, " --------"
        If fld.Properties("DisplayControl").Value = 110 Or fld.Properties("DisplayControl").Value = 111 Then
            'Propriété  DisplayControl = 110 => Affichage par liste simple
            'Propriété  DisplayControl = 111 => Affichage par liste déroulante (combo-box)
            Debug.Print fld.Properties("DisplayControl").Name, fld.Properties("DisplayControl").Value
            Debug.Print fld.Properties("RowSourceType").Name, fld.Properties("RowSourceType").Value
            Debug.Print fld.Properties("RowSource").Name, fld.Properties("RowSource").Value
            Debug.Print fld.Properties("ListItemsEditForm").Name, fld.Properties("ListItemsEditForm").Value
        End If
    Next
    Exit_test:
        Exit Sub
     
    Err_test:
        If Err.Number = 3270 Then
            'La propriété n'existe pas (dans le cas où elle ne serait pas définie)
            Resume Next
        Else
            GoTo Exit_test
        End If
    End Sub
    A noter les difficultés rencontrées :
    1/ l'appel à une propriété non définie retourne une erreur ( il n'y a pas forcément de formulaire associé à l'édition d'un champs )
    2/ sur mon poste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim fld as DAO.Field
    set fld = CurrentDB().TableDefs("Ma_table").Fields("Mon_champ")
    lève une erreur. Alors que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim db as DAO.Database
    Dim Tbl as DAO.TableDef
    Dim fld as DAO.Field
    Set db = currentDB()
    Set Tbl = db.TableDefs("Ma_table")
    Set fld = tbl.fields("Mon_champ")
    fonctionne parfaitement. Pourquoi ??? Mystère ...

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

Discussions similaires

  1. Comment accéder aux propriétés d'un objet de la bibliothèque
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 11/02/2009, 10h57
  2. [Smarty] Comment accéder aux propriétés d'un objet dans un objet ?
    Par Tanebisse dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/11/2008, 12h36
  3. comment accéder aux propriétés du modem
    Par kadij dans le forum Windows XP
    Réponses: 4
    Dernier message: 09/06/2008, 11h09
  4. Réponses: 3
    Dernier message: 02/01/2007, 14h09
  5. Réponses: 6
    Dernier message: 25/09/2006, 17h08

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