Access SQL
Facetious
- datenbank
Hi!
Gibt es ein Pendant zu dem MySQL Befehl "SHOW TABLES;"
im Access SQL?
danke und mfg Facetious
Moin!
Gibt es ein Pendant zu dem MySQL Befehl "SHOW TABLES;"
im Access SQL?
SELECT * machen und dann im Ergebnis die Spalten auswerten, würde ich meinen.
- Sven Rautenberg
Hallo,
Gibt es ein Pendant zu dem MySQL Befehl "SHOW TABLES;"
im Access SQL?
steht Dir MS-Access zur Verfügung? Wenn ja, aktiviere bitte über
Extras->Optionen->Ansicht
die Anzeige der Systemobjekte.
Du wirst bei den Tabellen ein paar neue Tabellen finden, die allesamt mit MSys beginnen, die Systemtabellen von MS Access. Ein Blick auf die Namen der Tabellen, anschließend auf den Inhalt zeigt Dir, dass MSysObjects die Tabelle ist, die Du befragen möchtest.
Mit der Anweisung
SELECT
Name
FROM
MSysObjects
WHERE Type = 1;
erhältst Du die Namen der Tabellen. Interessieren Dich die Systemtabellen nicht,
so erhältst Du mit
SELECT
Name
FROM
MSysObjects
WHERE (Type = 1)
AND (Name NOT LIKE "MSys*");
die Namen der Benutzertabellen.
Eine Alternative wäre der Weg über die ADO-Objekte. Es gibt den Catalog, der unter anderem die Tables-Collection enthält, diese wiederum enthält Informationen über die Table-Objekte.
Im Anschluss etwas Beispielcode in VBA, den Du einfach in ein (neues) Modul einfügen kannst. Vorher solltest Du ein, zwei Tabellen und aus Demo-Gründen ein oder zwei Abfragen erstellen:
' Demoprozedur zur Anzeige der Tables-Collection
Private Sub test()
' Benötigte Variablen
' Ein Catalog-Objekt
Dim cat As New ADOX.catalog
' Die Schleifenvariable vom Typ Table-Objekt
Dim tbl As Table
' Wir schauen uns die Tabellen der aktuellen DB an
Set cat.ActiveConnection = CurrentProject.Connection
' Ja ich weiß, hier gehört prinzipiell eine Fehlerbehandlung hin :-)
' Iterieren durch die Auflistung der Table-Objekte
For Each tbl In cat.Tables
' Ausgabe des Objektnamens und des Typs
' Beachte bitte, dass die Tables-Collection verschiedene
' Objekttypen enthält, z.B.
' SYSTEM TABLE (Systemtabellen)
' TABLE (Tabellen)
' VIEW (Abfragen)
Debug.Print tbl.Name & " " & tbl.Type
Next tbl
' Aufräumen
Set cat = Nothing
End Sub
Dies kann ein Ansatz für den Zugriff unter ASP sein.
Freundliche Grüße
Vinzenz, der etwas irritiert ist, weil er ein paar Postings vermisst.
PS: Und bei Microsoft die Doku dazu nicht gefunden hat.