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 é.
- Crie uma nova consulta no design da consulta, não com o assistente.
- Feche a janela da tabela.
- Mude a visualização para
SQL
e insira sua string. - Clique em
RUN
.
Responder2
Você pode fazer assim DAO
com 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
: