vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · ADO.NET Allgemein   |   VB-Versionen: VB2005, VB200819.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 OtterBewertung:  Views:  18.628 
www.tools4vb.deSystem:  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)



Anzeige

Kauftipp Unser Dauerbrenner!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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


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.