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 :

DAO Tabledefs - Ajouter une description


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Par défaut DAO Tabledefs - Ajouter une description
    Bonjour tout le monde,
    J'ai une plusieurs tables déjç créées dans ma base et une table imp_structure_base qui contient l'ensemble de la structure de ma base.
    J'aimerais à partir de cette table (imp_structure_base) redéfinir la taille et la description de chaque variable de chaque table de ma base.
    Le principe est le suivant, je boucle sur la base et sur les champs de la table.
    Une fois la table choisie, je selectionne les enregistrements correspondants aux variables de cette table choisie dans la table imp_structure_base. La correspondance entre le premier champ de la table selectionnée et le premier enregistrement de la table est parfaite et le déplacement aussi.
    Le seul probème est que j'arrive pas à modifier la taille du champs sélectionné ni à lui ajouter une description.

    Mon code est ci-dessous

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     Sub structure()
    Dim db As DAO.Database, tdf As DAO.TableDef, fld As DAO.Field
    Dim strDescription As String
    Dim strVar As String
    Dim strType As String
    Dim strTable As String
    Dim strTaille As String
    Dim rst As DAO.Recordset
    Dim sql As String
     
     
    Set db = CurrentDb
     
    On Error GoTo GestionErreur
     
     
    For Each tdf In db.TableDefs
        nom = tdf.Name
        sql = "SELECT * FROM IMP_STRUCTURE_BASE WHERE table  ='" & nom & " '"
        Set rst = db.OpenRecordset(sql, dbOpenDynaset)
        rst.MoveLast
        cp = rst.RecordCount
     
        Debug.Print (cp & " variables dans :" & nom)
        rst.MoveFirst
        Debug.Print (" ===== Début du jeu d'enregistrement =====")
            For Each fld In tdf.Fields
                strTaille = rst.Fields("taille")
                strDescription = rst.Fields("description")
     
                fld.Properties("Description") = strDescription
                fld.Properties("taille") = strTaille
     
                Debug.Print strDescription & " Taille : " & strTaille
                Debug.Print (fld.Name & "--> Traitement pour ->:" & rst.Fields("description"))
                rst.MoveNext
            Next fld
     
     
    Next tdf
     
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
     
    Exit Sub
     
    GestionErreur:
     
        strDescription = ""
        Resume Next
     
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
    Exit Sub
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir et bienvenue.

    La propriété pour la taille d'un champ est Size.
    Malheureusement elle est en lecture seule pour une table déjà créée (cf aide de DAO).

    Pour ce qui est de la propriété Description, si le champ n'a pas de description la propriété n'existe pas.
    Il faut la créer et l'ajouter à la collection Properties.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    fld.Properties.Append fld.CreateProperty("Description", dbText, "La descritpion du champ")

    On peut modifier la taille d'un champ Texte avec une instruction SQL.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "ALTER TABLE [Produits] ALTER COLUMN [Nom du produit] Text(50)"
    Par rapport à ton code, je ne sais pas s'il est possible d'utiliser l'instruction SQL ci-dessus, si un objet TableDef est ouvert en même temps sur la même table.
    Sinon envisager deux passes. Une pour la taille du champ et une pour les descriptions.

    A+

Discussions similaires

  1. Comment ajouter une référence microsoft DAO
    Par bobosh dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/06/2015, 10h03
  2. Ajouter une description sur une map
    Par fujitsu4 dans le forum Android
    Réponses: 1
    Dernier message: 03/06/2013, 12h18
  3. [HTML 4.0] Existe-t-il un moyen d'ajouter une description à un tag <OBJECT>?
    Par Immobilis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 03/08/2009, 10h05
  4. Réponses: 3
    Dernier message: 14/02/2008, 11h01
  5. ajout d'une description pour des fichiers listes avec apache
    Par deny dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 31/10/2007, 10h16

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