Per SQL auf Abfragen

15/05/2008 - 13:14 von Karl M. | Report spam
Hallo NG!

Mittels eine Recordset greife ich in Access über VBA auf meine Daten zu. Das
funktioniert aus so ganz fein, wenn ich im SQL-String direkt die Tabellen
anspreche. Nun möchte ich aber auch Abfragen wie Tabellen ansprechen,
allerdings schlàgt er beim RS.MoveFirst fehl und meldet:

Laufzeitfehler '3021':
Entweder BOF oder EOF ist true, oder der aktuelle Datensatz wurde gelöscht.
Der angeforderte Vorgang benötigt einen aktuellen Datensatz.

Der Code ist folgender:

Dim RS As ADODB.Recordset

Set RS = New ADODB.Recordset
Call RS.Open("SELECT * FROM MeineTabelle", CurrentProject.Connection,
adOpenKeyset, adLockOptimistic)

'Hier ist die Absturzstelle
RS.MoveFirst

Wie kann ich meine Abfragen hier ansprechen?

Mit freundlichen Grüßen
 

Lesen sie die antworten

#1 Stefan Hoffmann
15/05/2008 - 13:22 | Warnen spam
hallo Karl,

Karl M. schrieb:
Laufzeitfehler '3021':
Entweder BOF oder EOF ist true, oder der aktuelle Datensatz wurde
gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz.


Ja, es werden keine Datensàtze zurückgeben...

Dim RS As ADODB.Recordset

Set RS = New ADODB.Recordset
Call RS.Open("SELECT * FROM MeineTabelle", CurrentProject.Connection,
adOpenKeyset, adLockOptimistic)



If Not RS.BOF And Not RS.EOF Then
'Hier ist die Absturzstelle
RS.MoveFirst


Else
MsgBox "Keine Datensàtze."
End If

Wie kann ich meine Abfragen hier ansprechen?


Der SQL-Ausdruck in rs.Open kann wie folgt aussehen:

"SELECT <feldliste> FROM <AbfrageOderTabelle> [WHERE/GROUP/ORDER]"

oder

"<AbfrageOderTabelle>"

In letzterem Fall werden alle Datensàtze zurückgeliefert.


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen