¿Cómo hago para que Microsoft Access genere una lista de tablas de bases de datos?
Me encontré con una consulta SQL que alguien sugirió enotro sitio websin embargo, Access no parece tener ninguna interfaz que permita simplemente ejecutar una consulta construida por el usuario como la que se muestra a continuación...
SELECT [Name]
FROM MSysObjects
WHERE Type In (1,4,6)
AND Left([Name] , 4) <> "MSys"
ORDER BY [Name]
Respuesta1
Puedes ejecutar el SQL que tienes en una consulta, porque eso es lo que es.
- Cree una nueva consulta en el diseño de consultas, no con el asistente.
- Cierra la ventana de la mesa.
- Cambie la vista
SQL
e ingrese su cadena. - Haga clic
RUN
.
Respuesta2
Puedes hacerlo así con DAO
en 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
y así conADO
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 y ADO proporcionan dos modelos de objetos diferentes para bases de datos. La versión que elijas depende de tus preferencias. También necesita una referencia a las respectivas bibliotecas:
Puede agregar estas referencias en el menú Tools > References
: