Kontakt
DSVGO
Der Zugriff auf die in Excel-Dateien (*.xls) gespeicherten Daten erfordert normalerweise eine vollständige Excel-Installation, so dass die sogenannte ActiveX-Automation genutzt werden kann.
Mit Hilfe von ADO und der JetEngine kann auf die Tabellen einer Excel-Datei aber auch wie auf eine normale Datenbank zugegriffen werden, ohne den oben erwähnten Overhead.
Die folgende Routine gibt die komplette Tabelle "2001" aus der Excel-Datei "test.xls" im Testfenster aus:
Public Sub Test() Dim Col As ADODB.Field With ExcelTable("D:\xyz\test.xls", "2001") 'Kopfzeile ausgeben: For Each Col In .Fields Debug.Print Col.Name, Next Col Debug.Print 'Daten ausgeben: Do Until .EOF For Each Col In .Fields Debug.Print Col.Value, Next Col Debug.Print .MoveNext Loop .Close End With End Sub
Sogar Änderungen der vorhandenen Excel-Tabelle können gemacht werden:
With ExcelTable(D:\xyz\test.xls", "2001") 'Neue Zeile hinzufügen: .AddNew Array("Monat", "Wert"), Array("Dez.", 25.5) 'Vorhandenen Wert ändern: .Update "Wert", 27.7 .Close End With
Binden Sie die "Microsoft ActiveX Data Object Library" via Projekt/Verweise (Project/References) in Ihr Projekt ein. Fügen Sie folgenden Code hinzu:
Public Function ExcelTable( _ ByRef Path As String, _ ByRef Table As String _ ) As ADODB.Recordset 'Deklarationen: Dim SQL As String Dim Con As String 'Los gehts: SQL = "select * from [" & Table & "$]" Con = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Extended Properties=Excel 8.0;" _ & "Data Source=" & Path & ";" Set ExcelTable = New ADODB.Recordset ExcelTable.Open SQL, Con, adOpenKeyset, adLockOptimistic End Function
© Jost Schwider, 29.12.2001-29.12.2001 - http://vb-tec.de/exceltab.htm