Unser heutiger Tipp zeigt, wie Sie unter Verwendung von ADO.NET und der System.Data.OleDb-Klasse alle Tabellen einer Access-Datenbank ermitteln können. Die Funktion ReadAllMDBTables gibt die Tabellennamen hierbei als ArrayList-Objekt zurück. Optional lässt sich noch festlegen, ob neben den "normalen" Access-Tabellen auch die System-Tabellen ermittelt und zurückgegeben werden sollen. Für das Beispiel müssen Sie zunächst den Namespace "System.Data.OleDb" importieren: Imports System.Data.OleDb Hier die Funktion, mit der die in einer Access-Datenbank enthaltenen Tabellen ermittelt werden: ''' <summary> ''' Ermittelt alle in einer Access-Datenbank vorhandenen Tabellen ''' und gibt diese als ArrayList-Objekt zurück ''' </summary> ''' <param name="sMDBFile">Pfad zur Access-Datenbank</param> ''' <param name="bSkipSystemTables">False, wenn auch Access-Systemtabellen ''' zurückgegeben werden sollen</param> Public Function ReadAllMDBTables(ByVal sMDBFile As String, _ Optional ByVal bSkipSystemTables As Boolean = True) As ArrayList Dim oTables As New ArrayList Dim oConn As System.Data.OleDb.OleDbConnection = Nothing ' Fehlerbehandlung aktivieren Try ' Connection-String zusammenstellen Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & sMDBFile ' Connection zur Access-DB herstellen oConn = New System.Data.OleDb.OleDbConnection(sConn) oConn.Open() ' DB-Schema über alle Tabellen Dim oTable As DataTable = oConn.GetSchema("Tables") For Each oRow As DataRow In oTable.Rows If Not bSkipSystemTables OrElse oRow("TABLE_TYPE") = "TABLE" Then ' Falls es sich um eine "normale" Tabelle handelt ' oder auch System-Tabellen zurückgegeben werden sollen, ' Tabellenname jetzt dem ArrayList hinzufügen oTables.Add(oRow("TABLE_NAME").ToString) End If Next Catch ex As Exception ' Bei Fehler, Hinweis anzeigen MsgBox("Fehler beim Ermitteln der Access-Tabellen!" & vbCrLf & _ ex.Message, MsgBoxStyle.Exclamation) Finally ' Connection schließen If oConn IsNot Nothing Then oConn.Close() End Try Return oTables End Function Beispiel für den Aufruf: Dim sMDBFile As String = "d:\Access.mdb" With ListBox1.Items ' ListBox-Inhalt löschen .Clear() ' alle Tabellen ermitteln (auch System-Tabellen) Dim oTableList As ArrayList = ReadAllMDBTables(sMDBFile, False) If oTableList.Count > 0 Then For Each oItem As String In oTableList .Add(oItem) Next End If End With Dieser Tipp wurde bereits 29.028 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |