Laufzeitfehler 3021

22/04/2009 - 10:02 von Andreas Ahrens | Report spam
Hi NG,

ich habe folgende Fehlermeldung:

Entweder BOF oder EOF ist True, oder der aktuelle Datensat wurde
gelöscht. Der angeforderte Vorgang einen aktuelle Datensatz.

obwohl ein Datensatz existiert.

Code:

Private Sub Befehl9_Click()
Dim db As ADODB.Connection
Dim rs As New ADODB.Recordset
Set db = CurrentProject.Connection

rs.Open ("SELECT dbo_Brief.BriefID, dbo_Brief.AdressID,
dbo_Adressen.Anrede, " & _
"dbo_Adressen.VName, dbo_Adressen.NName, dbo_Adressen.Firma, " & _
"dbo_Adressen.Abteilung, dbo_Adressen.zHd, dbo_Adressen.Straße,
" & _
"dbo_Adressen.Plz, dbo_Adressen.Ort, dbo_Adressen.Textanrede, "
& _
"dbo_Brief.Betreff, dbo_Brief.Text, dbo_Brief.Dokument,
dbo_Brief.FormularID, " & _
"dbo_Brief.gedruckt_am, dbo_Formular.Formularname,
dbo_Formular.DokumentName, " & _
"dbo_Formular.Speicherpfad, dbo_Formular.Art,
dbo_Formular.WordOffen " & _
"FROM (dbo_Brief INNER JOIN dbo_Adressen " & _
"ON dbo_Brief.AdressID = dbo_Adressen.AdressID) " & _
"INNER JOIN dbo_Formular ON dbo_Brief.FormularID =
dbo_Formular.FormID"), db

MsgBox (rs.Fields("NName")) 'obige Fehlermeldung

rs.Close
db.Close


End Sub

Wo liegt der Fehler?

Gruß
Andy
 

Lesen sie die antworten

#1 Thomas Winkler
22/04/2009 - 10:16 | Warnen spam
Hi,

Private Sub Befehl9_Click()
Dim db As ADODB.Connection
Dim rs As New ADODB.Recordset
Set db = CurrentProject.Connection

rs.Open ("SELECT dbo_Brief.BriefID, dbo_Brief.AdressID,
dbo_Adressen.Anrede, " & _
"dbo_Adressen.VName, dbo_Adressen.NName, dbo_Adressen.Firma, " & _
"dbo_Adressen.Abteilung, dbo_Adressen.zHd, dbo_Adressen.Straße,
" & _
"dbo_Adressen.Plz, dbo_Adressen.Ort, dbo_Adressen.Textanrede, "
& _
"dbo_Brief.Betreff, dbo_Brief.Text, dbo_Brief.Dokument,
dbo_Brief.FormularID, " & _
"dbo_Brief.gedruckt_am, dbo_Formular.Formularname,
dbo_Formular.DokumentName, " & _
"dbo_Formular.Speicherpfad, dbo_Formular.Art,
dbo_Formular.WordOffen " & _
"FROM (dbo_Brief INNER JOIN dbo_Adressen " & _
"ON dbo_Brief.AdressID = dbo_Adressen.AdressID) " & _
"INNER JOIN dbo_Formular ON dbo_Brief.FormularID =
dbo_Formular.FormID"), db

MsgBox (rs.Fields("NName")) 'obige Fehlermeldung

rs.Close
db.Close


End Sub

Wo liegt der Fehler?



Muss es unbedingt ADO sein? Mit DAO würde das ganze in etwa so aussehen:

Dim rs As DAO.Recordset

set rs = currentdb.OpenRecordset("<HierDeinSQL-String>")

if (not (rs.eof or rs.bof)) then
MsgBox (rs.Fields("NName"))
endif

rs.close
set rs = nothing

HTH

Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."

Ähnliche fragen