O Microsoft Access é um sistema de gerenciamento de banco de dados para as pessoas gerarem seus próprios bancos de dados, relatórios e formulários de usuário. O Access contém todos os elementos básicos para desenvolver pequenos aplicativos. Você pode criar tabelas de dados, procedimentos armazenados, funções e macros definidas pelo usuário, além de relatórios e formulários. Todos esses componentes têm seus próprios indicadores ou definições de registros armazenados em uma tabela do sistema oculta. O Access mantém um registro de cada tabela, relatório, formulário etc. que você crie e armazene informações como a data em que esses elementos foram criados ou atualizados, bem como os indicadores do sistema.
Obter uma lista de tabelas
Passo 1
Crie uma consulta para executar o comando SQL mostrado abaixo. Esta consulta obtém uma lista de todas as tabelas no banco de dados atual do Access. A instrução where usa o número 1 para indicar que queremos apenas que as tabelas apareçam.
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1
Etapa 2
Obtenha uma lista que possui apenas tabelas de banco de dados que não são do sistema, com o exemplo fornecido abaixo:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Name Não é como ‘MSys’
Etapa 3
Obtenha uma lista contendo apenas as tabelas não ocultas no banco de dados executando a seguinte consulta:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8
Etapa 4
Classifique a lista de tabelas não ocultas que não são do sistema usando o seguinte código SQL:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8 AND MSysObjects.Name não gosta de ‘MSys * OU.
Use a lista de tabelas no VBA
Passo 1
Carregue sua lista de tabelas em um objeto de conjunto de registros usando o código VBA mostrado abaixo:
Dim rsMisTablas As DAO.Recordset Defina rsMisTablas = CurrentDb.OpenRecordset (‘Minha consulta’)
Etapa 2
Percorra um ciclo através de cada registro obtido na consulta.
Dim rsMisTablas As DAO.Recordset Defina rsMisTablas = CurrentDb.OpenRecordset (‘Minha consulta’)
Código do rsMisTablas.EOF ‘para não manipular informações
loop rsMisTablas.MoveNext
Etapa 3
Adicione os nomes de cada tabela a uma lista suspensa modificando seu ciclo while:
Dim rsMisTablas As DAO.Recordset Defina rsMisTablas = CurrentDb.OpenRecordset (‘Minha consulta’) Me.cmbMiComboBox.Clear
Faça enquanto não rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Name]
loop rsMisTablas.MoveNext
Etapa 4
Feche o objeto do conjunto de registros para liberar a memória que está usando:
Dim rsMisTablas As DAO.Recordset Defina rsMisTablas = CurrentDb.OpenRecordset (‘Minha consulta’) Me.cmbMiComboBox.Clear
Faça enquanto não rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Name]
loop rsMisTablas.MoveNext
rsMisTablas.Close Set rsMisTablas = Nothing