Rubrik: Datenbanken · ADO | VB-Versionen: VBA | 03.03.02 |
Excel-Tabelle im DataGrid anzeigen (ADO) Mit dem ADO-Datenbankzugriff und ein paar Zeilen Code lässt sich eine Excel-Tabelle ganz einfach in einem DataGrid anzeigen und bearbeiten. | ||
Autor: Dieter Otter | Bewertung: | Views: 44.218 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
In einem unserer letzten Tipps haben wir Ihnen gezeigt, wie sich mittels DAO-Datenbankzugriff eine Excel-Tabelle in einem DataGrid anzeigen lässt. Darauf haben sich natürlich Fragen ergeben, wie: "Und wie erreiche ich das ganze mittels ADO?".
Setzen Sie zuerst einmal einen Verweis auf die Microsoft ActiveX DataObjects 2.5 Library. Diese brauchen wir für den ADO-Datenbankzugriff. Dann benötigen wir noch das DataGrid, genauer dasdas Microsoft DataGrid Control 6.0 (OLEDB). Plazieren Sie das DataGrid auf die Form - alles andere erledigen wir per Code.
Hinweis
Wir möchten hier gezielt auf das Data-Control (Microsoft ADO DataControl) verzichten. Die Datenbank (Excel-Datei), sowie das Recordset (Tabelle) öffnen wir per Code.
Fügen Sie nachfolgende Deklarationen in den Allgemein-Teil der Form ein:
Option Explicit ' Datenbank-Connection + Recordset Objekt Public Conn As ADODB.Connection Public Rs As ADODB.Recordset
Im Form_Load Ereignis öffnen wir dann die Excel-Datei und zeigen die Zellen der entsprechenden Excel-Tabelle im DataGrid an.
Private Sub Form_Load() Dim sExcelFile As String Dim sTabelle As String ' vollständiger Pfad zur Excel-Datei sExcelFile = "C:\Eigene Dateien\Excel\Adressen.xls" ' Tabellen-Name sTabelle = "Tabelle1" ' Datenbank öffnen (Excel-Datei) Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient ' Excel-Versionen ' Excel 97: "Excel 8.0;" ' Excel 2000: "Excel 9.0;" ' Excel XP: "Excel 10.0;" Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Extended Properties=Excel 8.0;" & _ "Data Source=" & sExcelFile & ";" ' Recordset erstellen und öffnen Set Rs = New ADODB.Recordset Rs.Open "SELECT * FROM [" & sTabelle & "$]", Conn, _ adOpenKeyset, adLockOptimistic ' DataGrid mit dem Inhalt des Recordsets füllen With DataGrid1 ' Titel des DataGrid .Caption = "Excel-Daten" ' Datenanbindung Set .DataSource = Rs End With End Sub
' Datenbank schliessen Private Sub Form_Unload(UnloadMode As Integer) On Error Resume Next Rs.Close Conn.Close End Sub