Link: Wichtiger Hinweis in eigener Sache!
| Autor: Klaus Keller | Erstellt am: 2002-10-31 | Geändert am: 2004-03-29 | Aufrufe: 16691 |
Tipp 19: Alle Tabellen einer Datenbank anzeigen
Mit diesem Tip möchte ich Ihnen aufzeigen, wie Sie ohne Veränderungen in der Datenbank alle Tabellen in einer Access-Datenbank auflisten können. Zuerst einmal ein Programm, welches alle eigene Tabellen aufzeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <hr><b>Erstellte Tabellen (keine Systemtabellen):</b><hr><%
Public strConn, rs, Conn
set Conn = Server.CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("~db\Test.mdb")
Conn.ConnectionString = strConn Conn.CursorLocation = adUseClient Conn.Open
Set rs = Conn.OpenSchema(adSchemaTables) Do while not rs.EOF If UCase(rs("TABLE_TYPE")) = "TABLE" Then Response.Write(rs("TABLE_NAME") & "<br />") End If rs.MoveNext Loop
rs.Close Conn.Close set rs = nothing set Conn = nothing %> |
Was aber, wenn man auch die Views (Abfrage) auch noch darstellen möchte? Alle Tabellen, inkl. den Access-Systemtabellen können mit dem nachfolgendem Programm sortiert dargestellt werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <% Public strConn, rs, Conn, TabellenTyp
set Conn = Server.CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("~db\Test.mdb")
Conn.ConnectionString = strConn Conn.CursorLocation = adUseClient Conn.Open Set rs = Conn.OpenSchema(adSchemaTables) rs.sort = "TABLE_TYPE ASC" Do while not rs.EOF If UCase(rs("TABLE_TYPE")) = UCase(TabellenTyp) Then Response.Write(rs("TABLE_NAME") & "<br />") Else TabellenTyp = rs("TABLE_TYPE") Response.Write("<hr><b>" & TabellenTyp & "</b><hr>") Response.Write(rs("TABLE_NAME") & "<br />") End If rs.MoveNext Loop rs.Close Conn.Close set rs = nothing set Conn = nothing %> |
Wenn Sie diese 2 Skript ausführen, kann es vorkommen, daß Sie eine Fehlermeldung erhalten, diese Fehlermeldung mit dem Fehlercode 800a0bb9 kann z.B. so lauten: Die Anwendung verwendet Argumente, die vom falschen Typ, außerhalb des Gültigkeitsbereichs oder miteinander in Konflikt stehend sind.
Beispiel für den Fehler: Conn.CursorLocation = adUseClient adUseClient war kein Wert zugeordnet, diesen Fehler können Sie ganz einfach beseitigen: Const adUseClient = 3 Const adSchemaTables = 20
|