entweder bof oder eof ist true oder ...
12.05.2021 14:16:04
Ronald
Ich habe eine kleine Datenbankabrage (Access) und bekomme beim Vorwärtsnavigieren folgende Fehlermeldung:
"Entweder BOF oder EOF ist True oder der aktuelle Datensatz wurde gelöscht."
Wenn ich jedoch rückwärts navigiere oder zum ersten oder letzten Datzensatz, dann passiert jeweils gar nichts.
Zum Ablauf: Ich wähle aus einer Listbox einen der drei Testdatensätze aus:
Private Sub cmdAuswahlLaden_Click()
strAusgewaehlterDatensatz_KV = lstAuswahlKundennummer_KV.List(lstAuswahlKundennummer_KV.ListIndex)
If frmAuswahl.Caption = "SOFTWERK - Auswahl Privatkunde" Then
Call a_DB_Verbindung_aufbauen
Call b_SQL_Abfrage_PrivatKd
Call c_Handling_der_Datensaetze
ElseIf frmAuswahl.Caption = "SOFTWERK - Auswahl Geschäftskunde" Then
End If
frmAuswahl.Hide
End Sub
Dann baue ich die Verbindung auf:
Public Sub a_DB_Verbindung_aufbauen()
With cn
.CursorLocation = adUseClient
.Mode = adModeShareDenyNone
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Softwerk ERP\SOFTWERK_ERP.mdb;Persist Security Info=False;"
End With
End Sub
Dann kommt die Abfrage:
Public Sub b_SQL_Abfrage_PrivatKd()
With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockPessimistic
End With
strQuery = "SELECT * FROM tKunden WHERE fKdNummer = " & " '" & strAusgewaehlterDatensatz_KV & "'"
Set rs = cn.Execute(strQuery)
End Sub
Jetzt kommt die Anzeige: Es sollte nun den ausgewählten Datensatz aus der DB holen und entsprechend die Werte den dazugehörigen Textboxen zuweisen:
Public Sub c_Handling_der_Datensaetze()
Dim i As Integer
i = 1
Do While Not rs.EOF
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
rs.MoveNext
i = i + 1
Loop
End Sub
Hier nun der Quellcode der Buttons "Rückwärts", "Erster Datensatz", "Vorwärts" und "letzter Datensatz".
Private Sub cmdDSRueckwaerts_KV_Click()
rs.MovePrevious
If rs.BOF = True Then
MsgBox "Du bist beim ersten Datensatz."
rs.MoveFirst
End If
Call c_Handling_der_Datensaetze
End Sub
Private Sub cmdDSRueckwaertsMin_KV_Click()
rs.MoveFirst
Call c_Handling_der_Datensaetze
End Sub
Private Sub cmdDSVorwaerts_KV_Click()
rs.MoveNext
If rs.EOF = True Then
MsgBox "Du bist beim letzten Datensatz"
rs.MoveLast
End If
Call c_Handling_der_Datensaetze
End Sub
Private Sub cmdDSVorwaertsMax_KV_Click()
rs.MoveLast
Call c_Handling_der_Datensaetze
End Sub
Es würde mich sehr freuen, wenn mir jemand sagen kann, wo ich hier den Fehler drin habe.Danke im Voraus.
Gruß Ronald