Comment utiliser la propriété Attributes pour les objets TableDef dans Access

Numéro de la base de connaissances d’origine : 210362

Remarque

Nécessite des compétences d’experts en codage, en interopérabilité et en multi-utilisateur. Cet article s’applique uniquement à une base de données Microsoft Access (.mdb/.accdb).

Résumé

Vous pouvez utiliser la Attributes propriété d’un TableDef objet pour déterminer des propriétés de table spécifiques. Par exemple, vous pouvez utiliser la Attributes propriété pour déterminer si une table est une table système ou une table liée (attachée).

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous aider à expliquer les fonctionnalités d’une procédure particulière, mais ils ne modifient pas ces exemples pour fournir des fonctionnalités supplémentaires ou construire des procédures pour répondre à vos besoins spécifiques. REMARQUE : L’exemple de code de cet article utilise Microsoft Data Access Objects. Pour que ce code s’exécute correctement, vous devez référencer la bibliothèque d’objets Microsoft DAO 3.6. Pour ce faire, cliquez sur Références dans le menu Outils de l’Rédacteur Visual Basic et assurez-vous que la zone case activée Bibliothèque d’objets Microsoft DAO 3.6 est cochée.

Attributs TableDef

La Attributes propriété d’un TableDef objet spécifie les caractéristiques de la table représentée par l’objet TableDef . La Attributes propriété est stockée sous la forme d’un seul entier long et est la somme des constantes Long suivantes :

Constante Valeur Description
dbAttachExclusive 65536 Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que la table est une table liée ouverte pour une utilisation exclusive.
dbAttachSavePWD 131072 Pour les bases de données qui utilisent le moteur de base de données Jet, indique que l’ID utilisateur et le mot de passe de la table liée doivent être enregistrés avec les informations de connexion.
dbSystemObject -2147483646 Indique que la table est une table système.
dbHiddenObject 1 Indique que la table est une table masquée (pour une utilisation temporaire).
dbAttachedTable 1073741824 Indique que la table est une table liée à partir d’une base de données ODBC (Non Open Database Connectivity), telle que Microsoft Access ou Paradox.
dbAttachedODBC 536870912 Indique que la table est une table liée à partir d’une base de données ODBC, telle que Microsoft SQL Server ou ORACLE Server.

Pour un TableDef objet, l’utilisation de la Attributes propriété dépend de la status de TableDef, comme le montre le tableau suivant :

TableDef Utilisation
Objet non ajouté à la collection Lecture/écriture
Table de base Lecture seule
Table liée Lecture seule

Lors de la vérification du paramètre de cette propriété, vous pouvez utiliser l’opérateur AND pour tester un attribut spécifique. Par exemple, pour déterminer si un objet table est une table système, effectuez une comparaison logique de la TableDef propriété Attributes et de la dbSystemObject constante.

Exemple de code

Remarque

L’exemple de code de cet article utilise Microsoft Data Access Objects. Pour que ce code s’exécute correctement, vous devez référencer la bibliothèque d’objets Microsoft DAO 3.6. Pour ce faire, cliquez sur Références dans le menu Outils de la Rédacteur Visual Basic, puis vérifiez que la zone case activée Bibliothèque d’objets Microsoft DAO 3.6 est cochée.

L’exemple de fonction défini par l’utilisateur suivant effectue une boucle dans toutes les tables d’une base de données et affiche une boîte de message répertoriant le nom de chaque table et indiquant si la table est une table système ou non :

Option Compare Database   'Use database order for string comparisons.

Option Explicit

Function ShowTableAttribs()
   Dim DB As DAO.Database
   Dim T As DAO.TableDef
   Dim TType As String
   Dim TName As String
   Dim Attrib As String
   Dim I As Integer

Set DB = CurrentDB()

For I = 0 To DB.Tabledefs.Count - 1
      Set T = DB.Tabledefs(I)
      TName = T.Name
      Attrib = (T.Attributes And dbSystemObject)
      MsgBox TName & IIf(Attrib, ": System Table", ": Not System" & _
        "Table")
   Next I

End Function

References

Pour plus d’informations sur la propriété Attributs, cliquez sur Aide de Microsoft Visual Basic dans le menu Aide , tapez propriétés de l’objet dans l’Assistant Office ou l’Assistant Réponse, puis cliquez sur Rechercher pour afficher les rubriques retournées.