Como chegar consulta acesso VBA para listar as tabelas em um banco de dados

Acesso armazena informações sobre a estrutura do banco de dados na tabela MSysObjects.

Microsoft Access é um sistema de gerenciamento de banco de dados para os indivíduos para criar seus bancos de dados próprios, relatórios e formulários do usuário. Acesso contém todos os blocos de construção para o desenvolvimento de pequenas aplicações. Você pode criar tabelas de dados, procedimentos armazenados, funções definidas pelo usuário e macros, além de relatórios e formulários. Todos estes componentes têm os seus próprios ponteiros ou definições de registro armazenadas em uma tabela de sistema oculta. Acesso mantém o controle de cada tabela, relatório, forma, etc. você cria e armazena informações, como quando foi criado ou atualizado e bandeiras do sistema.

Obtendo uma lista de tabelas

  • Crie uma consulta para executar o comando SQL abaixo. Esta consulta recupera uma lista de todas as tabelas no banco de dados Access atual. A cláusula onde usa o número 1 para indicar que nós queremos apenas as tabelas retornado.

    SELECIONE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    ONDE MSysObjects.Type = 1

  • Retornar uma lista de apenas as tabelas não são do sistema no banco de dados com o exemplo dado:

    SELECIONE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    ONDE MSysObjects.Type = 1 AND MSysObjects.Name não gosto "MSys *"

  • Retornar uma lista de apenas as tabelas não-escondidos no banco de dados executando a consulta a seguir:

    SELECIONE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    ONDE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8

  • Ordenar a lista de tabelas não ocultos, não são do sistema usando o código SQL a seguir:

    SELECIONE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
    DE MSysObjects
    ONDE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8 e MSysObjects.Name não gosto "MSys *"
    ORDER BY MSysObjects.Name

Use a lista de tabelas no VBA

  • Carregue a sua lista de tabelas em um objeto conjunto de registros usando o código VBA mostrados abaixo:

    rsMyTables Dim DAO.Recordset
    Definir rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

  • Percorrer cada registro retornado na consulta.



    rsMyTables Dim DAO.Recordset
    Definir rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

    Do While Not rsMyTables.EOF
    `Código para manipular dados

    rsMyTables.MoveNext
    laço

  • Adicione o nome de cada tabela para uma lista drop-down, modificando o seu loop while:

    rsMyTables Dim DAO.Recordset
    Definir rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
    Me.cmbMyComboBox.Clear

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

    rsMyTables.MoveNext
    laço

  • Feche o objeto conjunto de registros para que ele libera a memória que está usando:

    rsMyTables Dim DAO.Recordset
    Definir rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
    Me.cmbMyComboBox.Clear

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

    rsMyTables.MoveNext
    laço

    rsMyTables.Close
    Definir rsMyTables = Nothing

De esta maneira? Compartilhar em redes sociais:

LiveInternet