Comment obtenir un accès vba requête à la liste des tables dans une base de données

<

Contenu

article data-type="article">
Access stocke des informations sur la structure de base de données dans le tableau MSysObjects.

Microsoft Access est un système de gestion de base de données pour les individus de créer leurs propres bases de données, les rapports et les formulaires utilisateur. Access contient tous les blocs de construction pour le développement de petites applications. Vous pouvez créer des tables pour les données, les procédures stockées, les fonctions définies par l`utilisateur et des macros en plus de rapports et formulaires. Tous ces composants ont leurs propres pointeurs ou des définitions d`enregistrement stockées dans une table système caché. Accès garde la trace de chaque table, rapport, forme, etc. vous créez et stocke des informations telles que quand il a été créé ou mis à jour et des drapeaux du système.

Obtenir une liste des tableaux

  • Créer une requête pour exécuter la commande SQL ci-dessous. Cette requête récupère une liste de toutes les tables de la base de données Access en cours. La clause where utilise le numéro 1 pour indiquer que nous voulons que les tables retournées.

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    WHERE MSysObjects.Type = 1

  • Retourne une liste des seules tables non-système dans la base de données avec l`exemple fourni:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    WHERE MSysObjects.Type = 1 ET MSysObjects.Name Non Like "MSys *"

  • Retourne une liste des seules tables non-cachés dans la base de données en exécutant la requête ci-dessous:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    WHERE MSysObjects.Type = 1 ET MSysObjects.Flags <> 8

  • Trier la liste des tables, non-système non-caché à l`aide du code SQL ci-dessous:




    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    WHERE MSysObjects.Type = 1 ET MSysObjects.Flags <> 8 ET MSysObjects.Name Non "MSys *" Comme
    ORDER BY MSysObjects.Name

Utilisez la liste des tableaux en VBA

  • Chargez votre liste de tables dans un objet enregistrement d`ensemble en utilisant le code VBA ci-dessous:

    rsMyTables Dim As DAO.Recordset
    Set rsMyTables = CurrentDb.OpenRecordset ( "MaRequête")

  • Boucle à travers chaque enregistrement retourné dans la requête.

    rsMyTables Dim As DAO.Recordset
    Set rsMyTables = CurrentDb.OpenRecordset ( "MaRequête")

    Do While Not rsMyTables.EOF
    «Code de manipuler les données

    rsMyTables.MoveNext
    Boucle

  • Ajouter chaque nom de table dans une liste déroulante en modifiant votre boucle while:

    rsMyTables Dim As DAO.Recordset
    Set rsMyTables = CurrentDb.OpenRecordset ( "MaRequête")
    Me.cmbMyComboBox.Clear

    Do While Not rsMyTables.EOF
    Me.cmbMyComboBox.AddItem rsMyTables! [Nom]

    rsMyTables.MoveNext
    Boucle

  • Fermez votre jeu d`enregistrements objet pour qu`il libère la mémoire qu`il utilise:

    rsMyTables Dim As DAO.Recordset
    Set rsMyTables = CurrentDb.OpenRecordset ( "MaRequête")
    Me.cmbMyComboBox.Clear

    Do While Not rsMyTables.EOF
    Me.cmbMyComboBox.AddItem rsMyTables! [Nom]

    rsMyTables.MoveNext
    Boucle

    rsMyTables.Close
    Set rsMyTables = Nothing

AUTRES

» » » » Comment obtenir un accès vba requête à la liste des tables dans une base de données