Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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

verknüpfte DB

verknüpfte DB
ptonka
Hallo zusammen,
ich nutze folgendes Script, um Daten aus einer Access-DB auszulesen und in Excel in eine Zell zu schreiben:
Sub ADO_Recordset_komplett_uebernehmen()
Application.ScreenUpdating = False
Dim con As ADODB.Connection
Dim datei As String
Dim fld As Field
Dim rs As ADODB.Recordset
Dim spalte As Long
Dim accTab As String
Dim ws As Worksheet
Dim zeile As Long
Dim s As String
'Den Ausgangswert für die Suche in die Variable s schreiben
s = Range("D2").Value
' (0) SQL-String
'accTab = "SELECT DOMAIN FROM x86Intel WHERE INVENTARNR = " & "'" & s & "'"
accTab = "SELECT DOMAIN FROM x86Intel WHERE INVENTARNR = " & s
' (1) Verbindung zur Datenbank herstellen
datei = "F:\Daten\Access\LSM_NEU.mdb"
Set con = New ADODB.Connection
con.Open ConnectionString:= _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & datei
' (2) Recordset erstellen
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseServer
rs.Open Source:=accTab, _
ActiveConnection:=con, _
CursorType:=adOpenKeyset, _
LockType:=adLockReadOnly, _
Options:=adCmdTableDirect
' (3a) Tabellenblatt selektieren
Set ws = ThisWorkbook.Worksheets("Tabelle1")
' (3b) Stelle angeben, an die der neue Wert in Excel übergeben werden soll
ws.Range("D20").CopyFromRecordset _
Data:=rs, _
MaxRows:=ws.Rows.Count - 1, _
MaxColumns:=ws.Columns.Count
' (4) Recordset und Verbindung schließen
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing
Application.ScreenUpdating = True
End Sub

Dieses makro funktioniert einwandfrei, sobald die Access-DB "eigenständig" ist, also eigene Tabellen besitzt. Sobald aber eine Tabelle eine Verknüpfung ist (in meinem Fall eine Verknüpfung zu einer Oracle-DB) funktioniert das Makro nicht mehr und ich erhalte an der Stelle:
' (2) Recordset erstellen
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseServer
rs.Open Source:=accTab, _
ActiveConnection:=con, _
CursorType:=adOpenKeyset, _
LockType:=adLockReadOnly, _
Options:=adCmdTableDirect
eine Fehlermeldung:
Laufzeitfehler
Die Methode 'Open' für das Objekt '_Recordser' ist fehlgeschlagen.
Hat jemand eine Ahnung warum das so ist?
Ich habe keinerlei Erklärung dafür.
Für eine Hilfe wäre ich sehr dankbar.
Gruß,
Jochen (=Ptonka)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: verknüpfte DB
23.03.2012 13:02:10
dan
Hallo Jochen,
und was weare wenn Du anderes CursorType und anderes LockType benutzt?
Zum Beispiel: LockType : adLockUnspecified, CursorType : adOpenForwardOnly
Hat sich etwas veraendert? Gruss dan, cz.
AW: verknüpfte DB
23.03.2012 13:34:20
ptonka
Hallo Dan,
leider nein - gleiche Fehlermeldung.
Gruß,
Jochen
AW: verknüpfte DB
23.03.2012 14:11:23
dan
Und wenn Du den Select vereinfachst ?
Wird SELECT * FROM
funktionieren?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige