ADODB-Abfrage von Excel auf Access DB: Seltsames Verhalten

19/11/2007 - 16:46 von Hans Mayr | Report spam
Hallo,

ich verbinde mich von Excel per ADODB auf eine mdb-Datei um die Daten
dann in Excel einzufügen. Das funktioniert insgesamt super.
Seltsamerweise habe ich eine einzige Abfrage, die mir auf diesem Weg
ein leeres Ergebnis zurückgibt. Kopiere ich die verwendete SQL in eine
leere Access-Abfrage, dann funktioniert sie einwandfrei. Die SQL mit
dem komischen Verhalten sieht so aus:

SELECT * FROM qry_Test WHERE PERIODE = 200710

Der Code, den ich verwende, sieht so aus (Auszug):

*****************************************************

Set rs = New ADODB.Recordset

If Connection_Oeffnen = False Then Exit Function

Set rs.ActiveConnection = cn
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.Open strSQL, cn
Debug.Print (rs.RecordCount & " Eintràge")

*****************************************************

Hat jemand eine Ahnung, wo ich den Fehler suchen kann? Da fast alles
funktioniert und diese Abfrage sich in keinem wesentlichen Punkt von
den funktionierenden Abfragen unterscheidet, bin ich ratlos.

Dank und Grüße

Hans
 

Lesen sie die antworten

#1 Susanne Wenzel
20/11/2007 - 06:03 | Warnen spam
Hallo Hans,
Am Mon, 19 Nov 2007 07:46:51 -0800 (PST) schrieb Hans Mayr:

ich verbinde mich von Excel per ADODB auf eine mdb-Datei um die Daten
dann in Excel einzufügen. Das funktioniert insgesamt super.
Seltsamerweise habe ich eine einzige Abfrage, die mir auf diesem Weg
ein leeres Ergebnis zurückgibt. Kopiere ich die verwendete SQL in eine
leere Access-Abfrage, dann funktioniert sie einwandfrei. Die SQL mit
dem komischen Verhalten sieht so aus:

SELECT * FROM qry_Test WHERE PERIODE = 200710

Der Code, den ich verwende, sieht so aus (Auszug):

*****************************************************

Set rs = New ADODB.Recordset

If Connection_Oeffnen = False Then Exit Function

Set rs.ActiveConnection = cn
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.Open strSQL, cn
Debug.Print (rs.RecordCount & " Eintràge")

*****************************************************

Hat jemand eine Ahnung, wo ich den Fehler suchen kann?



Was ergibt rs.RecordCount?
Wie wird Deiner Variablen strSQL ihr Wert zugewiesen (strSQL = ?) und
welchen Inhalt genau hat strSQL nach der Zuweisung?

Was soll 200710 eigentlich sein, eine beliebige Zahl oder Oktober 2007?
Falls letzteres, vermute ich, dass für die Jet-Engine ein Wert übergeben
wird, den sie nicht als Datum erkennt. Welchen Datentyp hat denn das Feld
Periode?

HTH
Viele Grüße aus dem hohen flachen Norden Deutschlands
Susanne
Office XP, SP3, aktueller Patchstand
Windows 2000, SP4, aktueller Patchstand
KI-TRIPLE 2007

Ähnliche fragen