Gerar lista de tabelas de banco de dados do Microsoft Access

Gerar lista de tabelas de banco de dados do Microsoft Access

Como faço para que o Microsoft Access gere uma lista de tabelas do banco de dados?

Me deparei com uma consulta SQL que alguém sugeriu emoutro siteno entanto, o Access não parece ter nenhuma interface que simplesmente permita a execução de uma consulta construída pelo usuário, como a abaixo...

SELECT [Name]
FROM MSysObjects
WHERE Type In (1,4,6)
AND Left([Name] , 4) <> "MSys"
ORDER BY [Name]

Responder1

Você pode executar o SQL que possui em uma consulta, porque é isso que é.

  1. Crie uma nova consulta no design da consulta, não com o assistente.
    insira a descrição da imagem aqui
  2. Feche a janela da tabela.
    insira a descrição da imagem aqui
  3. Mude a visualização para SQLe insira sua string.
  4. Clique em RUN.
    insira a descrição da imagem aqui

Responder2

Você pode fazer assim DAOcom VB:

Public Sub ListTablesDAO()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef

    Set db = CurrentDb
    For Each tdf In db.TableDefs
        If (tdf.Attributes And dbSystemObject) = 0 Then
            Debug.Print tdf.Name
        End If
    Next tdf
    db.Close: Set db = Nothing
End Sub

e assim comADO

Public Sub ListTablesADO()
    Dim rs As ADODB.Recordset

    Set rs = CurrentProject.Connection.OpenSchema(adSchemaTables)
    Do Until rs.EOF
        If rs!TABLE_TYPE = "TABLE" Then
            Debug.Print rs!TABLE_NAME
        End If
        rs.MoveNext
    Loop
    rs.Close: Set rs = Nothing
End Sub

DAO e ADO fornecem dois modelos de objetos diferentes para bancos de dados. A versão que você escolher depende de suas preferências. Você também precisa de uma referência às respectivas bibliotecas:

Você pode adicionar essas referências no menu Tools > References:

insira a descrição da imagem aqui

informação relacionada