Rubrik: Datenbanken · ADO.NET Allgemein | VB-Versionen: VB2005, VB2008 | 19.06.09 |
Felder einer bestimmten Tabelle aus einer Access-Datenbank ermitteln Dieses Beispiel zeigt, wie sich mittels ADO.NET und Verwendung der OleDb-Klasse alle Feldnamen einer bestimmten Tabellen einer Access-Datenbank ermitteln lassen. | ||
Autor: Dieter Otter | Bewertung: | Views: 18.628 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Unser heutiger Tipp zeigt, wie Sie unter Verwendung von ADO.NET und der System.Data.OleDb-Klasse alle Feldnamen einer bestimmten Tabellen einer Access-Datenbank ermitteln können.
Die Funktion ColumnsFromMDBTable gibt die Feldnamen hierbei als ArrayList-Objekt zurück.
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 Feldnamen einer Access-Tabelle ermittelt werden:
''' <summary> ''' Ermittelt alle Feldnamen der angegbenen Access-Tabelle und ''' gibt diese als ArrayList-Objekt zurück. ''' </summary> ''' <param name="sMDBFile">Pfad zur Access-Datenbank</param> ''' <param name="sTable">Name der Access-Tabelle</param> Public Function ColumnsFromMDBTable(ByVal sMDBFile As String, _ ByVal sTable As String) As ArrayList Dim oColumns As New ArrayList ' Fehlerbehandlung aktivieren Try ' Connection-String zusammenstellen Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & sMDBFile Using oConn As New OleDbConnection(sConn) ' Connection zur Access-DB herstellen oConn.Open() ' DB-Schema über alle Spalten Dim oTable As DataTable = oConn.GetSchema("Columns") For Each oRow As DataRow In oTable.Rows ' falls es sich um die gesuchte Tabelle handelt, ' jetzt den Feldnamen ausgeben If oRow("TABLE_NAME") = sTable Then oColumns.Add(oRow("COLUMN_NAME")) End If Next End Using Catch ex As Exception ' Bei Fehler, Hinweis anzeigen MsgBox("Fehler beim Ermitteln der Access-Tabellenfelder!" & vbCrLf & _ ex.Message, MsgBoxStyle.Exclamation) End Try Return oColumns End Function
Beispiel für den Aufruf:
Es sollen alle Feldnamen der angegebenen Access-Tabelle ermittelt und in einem ListBox-Control angezeigt werden:
Dim sMDBFile As String = "d:\Access.mdb" Dim oColumns As ArrayList = ColumnsFromMDBTable(sMDBFile, "tblAdressen") ListBox1.Items.Clear ListBox1.Items.AddRange(oColumns.ToArray)