Como obter acesso em consultas VBA para listar as tabelas no banco de dados

Escrito por susan hare | Traduzido por erica priscila de souza
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como obter acesso em consultas VBA para listar as tabelas no banco de dados
O Acess armazena informações de estrutura do banco de dados na tabela MSysObjects (data storage image by Kir from Fotolia.com)

Microsoft Access é um sistema de gerenciamento de banco de dados que permite aos usuários criarem seus próprios bancos de dados, relatórios e formulários. O Acess contém todos os blocos de construção para o desenvolvimento de pequenos aplicativos. Você pode criar tabelas de dados, procedimentos armazenados, funções e macros, além de formulários e relatórios. Todos esses componentes têm seus próprios ponteiros ou definições de registros armazenados em uma tabela oculta do sistema. O Acess mantém registro de cada tabela, relatório, formulário etc. que você cria e também armazena dados como a data em que foi criado ou atualizado e sinalizadores do sistema.

Nível de dificuldade:
Moderadamente fácil

Outras pessoas estão lendo

Instruções

    Obtendo uma lista de tabelas

  1. 1

    Crie uma consulta que execute o comando SQL abaixo. Essa consulta exibe uma lista de todas as tabelas do banco de dados do Access atual. A cláusula "where" usando o número 1, serve para indicar que nós queremos apenas as tabelas citadas.

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

  2. 2

    Retorne a consulta das tabelas não-sistemáticas no banco de dados, com o exemplo abaixo:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Name Not Like "MSys*";

  3. 3

    Insira a lista das tabelas não-ocultas do banco de dados executando a consulta abaixo:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8

  4. 4

    Ordene a lista de tabelas não-ocultas, não-sistemáticas, usando o código SQL a seguir:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8 AND MSysObjects.Name Not Like "MSys"; ORDER BY MSysObjects.Name

    Use a lista de tabelas em VBA

  1. 1

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

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

  2. 2

    Percorra cada registro da consulta realizada.

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

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

    rsMyTables.MoveNext Loop

  3. 3

    Adicione um nome a cada tabela para uma lista, modificando seu loop:

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

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

    rsMyTables.MoveNext Loop

  4. 4

    Feche o seu objeto de registro para liberar a memória que ele está utilizando:

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

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

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Nothing

Dicas & Advertências

  • As Macros que são feitas no Visual Basic for Applications (VBA), que é uma linguagem de programação da Microsoft Office Standard.
  • Você pode listar qualquer um destes objetos no Access, alterando o filtro "MSysObject.Type". As opções para este valor estão listadas abaixo:
  • Table= 1
  • Query= 5
  • Linked Table= 4, 6, or 8
  • Form= -32768
  • Report= -32764
  • Module= -32761

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível