Facetious: Access SQL

Hi!

Gibt es ein Pendant zu dem MySQL Befehl "SHOW TABLES;"
im Access SQL?

danke und mfg Facetious

  1. 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

    --
    My sssignature, my preciousssss!
  2. 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.