Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Recordset in Excel

Recordset in Excel
26.06.2015 15:56:22
Ohlrich
Hallo Community,
ich habe folgendes Problem.
Ich bekomme einen Automatisierungsfehler 80040e14 bei folgender Zeile und verstehe nicht weshalb.

Dim cn As ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=E:\Dokumente\Excel\Artikelliste\Artikelliste_2015.xls;" &  _
_
"Extended Properties=Excel 8.0;"
.Open
End With
Set rst = New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM [Artikelliste$]"
'rst.Open "Artikelliste", cn, adOpenDynamic
With rst
.Source = strSQL
.ActiveConnection = cn
.Open 'hier tritt der Fehler auf
End With
Mein Ziel ist es eine Verbindung zu einer anderen Excel-Datei aufzubauen. Danach ein Recordset aufgrund von durch SQL gefilterten Daten aus dem externen Tabellenblatt zu erstellen und danach stelle ich ein paar schöne Dinge mit dem Recordset an.
Meine Google-Suche hat bisher ergeben, dass der Fehler wohl aufgrund des SQL-String käme. Habe diverse Möglichkeiten ausprobiert, inklusive anderem Vorgehen bei dem erstellen des Recordsets. Bisher alles ohne Erfolg.
Bin für jeden Hinweis dankbar.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Recordset in Excel
26.06.2015 18:38:13
Luschi
Hallo Ohlrich,
ich mach das immer so:

Sub testADODB()
Dim cn As Object
Dim rst As Object
Dim strSQL As String
Dim xDatei As String
'es ist kein Verweis gesetzt zu ADODB (Early Binding)
'Late Binding
'dadurch ist gewährleistet, daß immer der gerade neueste installierte
'ADO-Treiber angewendet wird
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
xDatei = "G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\05_05_Artikel.xls"
'xDatei = "G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\05_05_Artikel.xls"
'xDatei = "G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\05_05_Artikel.xlsx"
xDatei = "G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\05_05_Artikel.xlsm"
With cn
'für xls-Dateien E_97 bis E_2003
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xDatei & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""
'HDR=NO - wenn keine Überschriften im Bereich
'    'für xlsx-Dateien ab E_2007
'    .Provider = "Microsoft.ACE.OLEDB.12.0"
'    .ConnectionString = "Data Source=G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\ _
05_05_Artikel.xlsx;" & _
'                        "Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"""
'    'für xlsm-Dateien ab E_2007
'    .Provider = "Microsoft.ACE.OLEDB.12.0"
'    .ConnectionString = "Data Source=G:\Daten\Excel\E_2010\PowerPivot\Beispiel_01\ _
05_05_Artikel.xlsx;" & _
'                        "Extended Properties=""Excel 12.0 Macro;HDR=YES;IMEX=1"""
.Open
End With
'- Artikel ist der Tabellenname in der Exceldatei
strSQL = "SELECT * FROM [Artikel$];"
With rst
.Source = strSQL
.ActiveConnection = cn
.Open 'hier tritt der Fehler auf
End With
Tabelle1.Cells.Clear
'Datenübernahme
Tabelle1.Range("A1").CopyFromRecordset rst
rst.Close
cn.Close
Set rst = Nothing
Set cn = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Recordset in Excel
29.06.2015 09:26:10
Ohlrich
Ha, großartig =)
Habe mich selbst ausgetrickst, indem ich die Endung der Exceldatei nicht komplett kopiert hatte und so aus xlsm nur xls wurde.
Danke für die Hilfe.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige