PDA

Vollständige Version anzeigen : Tabellennamen auslesen


Bessu
07.01.2007, 15:16
Hallo,
ich versuche gerade, von Delphi auf VB 2005 umzusteigen und bin bei der Umsetzung eines Projektes auch gleich mal auf ein Problem gestossen. Die Suche in verschiedenen Foren und auf MSDN hat mich nicht zu Ziel geführt. Wahrscheinlich ist es zu einfach, um irgendwo behandelt zu werden.

Ich öffne beim Laden des Formulars eine Datenbank mit unterschiedlichen Tabellen (es wird monatlich eine neue Tabelle für die jeweils angefallenen Daten angefügt).

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dbFile = "TestDB.mdb"
objConn = New ADODB.Connection
With objConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source").Value = dbFile
.Open()
End With
End Sub

Das Erstellen der Tabellen ist auch kein Problem und wird mit

Public Sub createtb()
dbFile = dbFileName
table = New ADOX.Table
strSQL = "Create Table " & dbFile
objConn.Execute(strSQL)

column = New ADOX.Column
strSQL = "ALTER TABLE " & dbFile & " ADD COLUMN Nummer Counter Primary Key"
objConn.Execute(strSQL)

column = New ADOX.Column
strSQL = "ALTER TABLE " & dbFile & " ADD COLUMN Anrede Text(10), " & " Vorname Text(30), " & "Name Text(30) "
objConn.Execute(strSQL)

column = New ADOX.Column
strSQL = "ALTER TABLE " & dbFile & " ADD COLUMN Klasse Text(30), " & " Klasse_Bez Text(30) "
objConn.Execute(strSQL)

column = New ADOX.Column
strSQL = "ALTER TABLE " & dbFile & " ADD COLUMN Preis Integer, " & " Pokal Text(30) "
objConn.Execute(strSQL)

End Sub

erledigt.
Um aber die unterschiedlichen Daten auswerten zu können, brauche ich beim Öffnen der Tabellen eine Auflistung der Tabellennamen. Wie kann ich das in meinem Beispiel erreichen?

Besten Dank für Eure Hilfe

Mfg

Bessu

redround
10.01.2007, 01:16
guck Dir mal die OpenSchema-Methode des ADODB.Connection-Objektes an ... da findest du alles was Du suchst

Bessu
10.01.2007, 14:48
Danke, hat wunderbar geklappt.
Damit ist nun aber gleich das nächste Problem aufgetreten:
Mit

adoConnection.OpenSchema(SchemaEnum.adSchemaTables)

erhalte ich alle Tabellen (einschl. Systemtabellen). Wie kann ich diese Systemtabellen ausblenden?

Bessu

Bessu
10.01.2007, 17:04
Hab's gefunden:
Mit

If Strings.Left(adoRecordset("TABLE_NAME").Value, 4) <> "MSys" Then

die unerwünschten Tables ausgeblendet.

Danke

Bessu