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] description complète des tables


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut [DAO] description complète des tables
    Bonjour,

    En DAO, je peux lister mes tables, lister chaque champ de ces tables ainsi que le type de chacun de ces champs. Or, en mode création d'une table, on voit une partie "description".
    Comment y accéder ?

    Merci beaucoup

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    Bonjour
    Un exemple d'accès.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim db as DAO.Database, oTbl as DAO.tabledef, sDesc as String
    sDesc = db.TableDefs(oTbl.Name).Properties("Description").Value
    Pour plus d'info, l'aide d'access collection properties est plutôt bien faite.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    De plus va consulter le tuto sur DAO, il te donnera toutes les infos, dont celle que vient de te donner Oleff.

    Starec

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut Merci
    Merci à tous les deux

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut désolé mais...
    Je pensais avoir résolu mon problème grâce à vos conseils. J'ai eu beau regarder le tuto sur DAO, il doit me manquer qqchse pour arriver à faire le lien entre le code et le tuto (des neurones, peut-être ?)
    Bref, voilà le code :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Option Compare Database
    Const NOMTABLEDICO = "tbl_Dictionnaire"
    Const NOMCHAMPTABLE = "Table"
    Const NOMCHAMPATTRIBUT = "Attribut"
    Const NOMCHAMPTYPE = "TypeAttribut"
    Const NOMCHAMPRG = "Description"
    
    Private Function TableExiste(strNom As String, _
            oDb As DAO.Database) As Boolean
            
    On Error GoTo error
    
      Dim oTbl As DAO.TableDef
    
      Set oTbl = oDb.TableDefs(strNom)
    
      TableExiste = True
      Set oTbl = Nothing
      
    error:
    Exit Function
    
    End Function
    
    
    Private Function TypeFr(intType As Integer) As String
    
    Select Case intType
      Case dbText, dbMemo: TypeFr = "Texte"
      Case dbBoolean: TypeFr = "Booléen"
      Case dbDate, dbTime, dbTimeStamp: TypeFr = "Date"
      Case Else: TypeFr = "Numérique"
    End Select
    
    End Function
    
    
    Private Function MAJTexte(strChaine As String) As String
    
    MAJTexte = Chr(34) & Replace(strChaine, Chr(34), Chr(34), , _
      , vbTextCompare) & Chr(34)
      
    End Function
    
    
    Private Sub CreerTableDico(oDb As DAO.Database)
    
    Dim oTbl As DAO.TableDef
    Dim oFld As DAO.Field
    
    
    If Not TableExiste(NOMTABLEDICO, oDb) Then
    
      Set oTbl = oDb.CreateTableDef(NOMTABLEDICO)
    
      With oTbl
        .Fields.Append .CreateField(NOMCHAMPTABLE, dbText, 255)
        .Fields.Append .CreateField(NOMCHAMPATTRIBUT, dbText, 255)
        .Fields.Append .CreateField(NOMCHAMPTYPE, dbText, 15)
        Set oFld = .CreateField(NOMCHAMPRG, dbText, 255)
        oFld.AllowZeroLength = True
        .Fields.Append oFld
      End With
    
      oDb.TableDefs.Append oTbl
    Else
    oDb.Execute "DELETE FROM " & NOMTABLEDICO
    End If
    
    End Sub
    
    
    Public Sub EnrichirDico()
    
    Dim oDb As DAO.Database
    Dim oTbl As DAO.TableDef
    Dim oFld As DAO.Field
    
    Set oDb = CurrentDb
    
    CreerTableDico oDb
    
    For Each oTbl In oDb.TableDefs
    
      If (oTbl.Attributes And dbSystemObject) = 0 And oTbl.Name <> NOMTABLEDICO Then
        For Each oFld In oTbl.Fields
          oDb.Execute "INSERT INTO " & NOMTABLEDICO & " VALUES (" & _
                MAJTexte(oTbl.Name) & "," & _
                MAJTexte(oFld.Name) & "," & _
                MAJTexte(TypeFr(oFld.TYPE)) & "," & _
                MAJTexte(oFld.name).properties("Description).value & ")"
                 
        Next oFld
      End If
    Next oTbl
    
    Set oFld = Nothing
    Set oTbl = Nothing
    Set oDb = Nothing
    
    End Sub

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    La propriété description n'est pas toujours disponible ni existante.

    Pour le gérer, tu peux utiliser la gestion d'erreur avec un
    ou
    De plus il te manque un quote (erreur de copie je suppose)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAJTexte(oFld.name).properties("Description").value

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

Discussions similaires

  1. Description des tables
    Par midodido123 dans le forum Oracle
    Réponses: 5
    Dernier message: 02/03/2009, 09h40
  2. Réponses: 2
    Dernier message: 06/04/2007, 11h48
  3. [DAO]Création d'un table des matières
    Par IDE dans le forum Word
    Réponses: 1
    Dernier message: 01/04/2007, 17h47
  4. [DEBUTANT]Voir les tables et la description des tables
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/05/2006, 09h02
  5. Comment obtenir la description des tables par SQL
    Par rcastaldi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/03/2004, 14h13

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