Tabellen auflisten lassen

knowledge

Mitglied
Ich kann mit dem unten stehenden Code alle Tabellen in meine Datenbank auflisten lassen aber dieser Code ist für aktuelle Datenbank, meine für eine geöffnete Datenbank. Wie kann ich den Code für andere(nicht geöffnete) Datenbanken modifizieren
Code:
Public Sub ListTables()

    Dim i As Integer
    
    On Error Resume Next
    
    For i = 0 To CurrentDb.TableDefs.count - 1
        Debug.Print "Table: " & CurrentDb.TableDefs(i).Name
    Next
    
End Sub
 
Hallo, versuch´s mal hiermit:
Code:
' Verweis auf Microsoft DAO 3.51 oder DAO 3.6 Object Library nicht vergessen 

Dim Con As DAO.Database
Dim i As Long

Set Con = DBEngine.OpenDatabase("d:\db2.mdb")
 
For i = 0 To Con.TableDefs.Count - 1
  Debug.Print "Table: " & Con.TableDefs(i).Name
Next
 
Willst Du den Code in Access oder VB6 benutzen ?

Dieser Code funktioniert in Access und in VB6:
Code:
' Verweis auf Microsoft ActiveX Data Objects 2.x Library nicht vergessen

Dim DB As ADODB.Connection
Dim RS As ADODB.Recordset

Set DB = New ADODB.Connection
Set RS = New ADODB.Recordset

DB.CursorLocation = adUseClient
DB.Provider = "Microsoft.Jet.OLEDB.4.0"
DB.Open "d:\db2.mdb"

Set RS = DB.OpenSchema(adSchemaTables)

Do Until RS.EOF
  MsgBox RS("TABLE_NAME")
  RS.MoveNext
Loop
Edit: Code hinzugefügt
 
Zuletzt bearbeitet:
Ich bekomme den Fehler MS Jet Datenbankmodul kann die Datenbank nicht öffnen. Sie ist bereit von einem anderen benutzer exclusiv geöffnet oder Sie benötigen eine Berechtigung, um Daten lesen zu können.
was soll ich jetzt dagegen machen?
 
Wofür ist denn jetzt der Code ? Access oder VB6

Ist die Datenbank wirklich exclusiv geöffnet oder mit Passwort geschützt ?
 
Also bei mir funktioniert der Code einwandfrei in Access 2000.
Listed sogar Systemtabellen und Abfragen auf.
Den Verweis habe ich auf Microsoft ActiveX Data Objects 2.1 Library
 

Neue Beiträge

Zurück