Wie lasse ich Microsoft Access eine Liste mit Datenbanktabellen erstellen?
Ich bin auf eine SQL-Abfrage gestoßen, die jemand vorgeschlagen hat aufeine andere WebsiteAccess scheint jedoch über keine Schnittstelle zu verfügen, die das einfache Ausführen einer benutzerdefinierten Abfrage wie der folgenden ermöglicht …
SELECT [Name]
FROM MSysObjects
WHERE Type In (1,4,6)
AND Left([Name] , 4) <> "MSys"
ORDER BY [Name]
Antwort1
Sie können das SQL, das Sie haben, in einer Abfrage ausführen, denn das ist es.
- Erstellen Sie eine neue Abfrage im Abfrageentwurf, nicht mit dem Assistenten.
- Schließen Sie das Tabellenfenster.
- Ändern Sie die Ansicht
SQL
und geben Sie Ihre Zeichenfolge ein. - Klicken
RUN
.
Antwort2
DAO
Mit in können Sie dies folgendermaßen tun 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
und so mitADO
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 und ADO stellen zwei unterschiedliche Objektmodelle für Datenbanken zur Verfügung. Welche Variante Sie wählen, hängt von Ihren Präferenzen ab. Außerdem benötigen Sie einen Verweis auf die jeweiligen Bibliotheken:
Sie können diese Referenzen im Menü hinzufügen Tools > References
: