FehlerMeldung 2501 bei Kombination von Sortierung mit DoCmd.GoToRe

06/11/2008 - 14:39 von Gerhard Mayer | Report spam
Hallo,

ich versuche per VBA beim Laden eines Formulars 25 Datensàtze vor das Ende
zu springen mittels

Private Sub Form_Load()
Me!GebuchteSumme = Actualize(Me, CONST_OHNE)
Call CSBModul.Actualize_Firma_Begruendung(Me)
Call CSBModul.CorrectMonthAndYear
Me.Sortierkriterium = "BuDat-HUEL"
Call CSBModul.SortUp(Me)
Call CSBModul.GotoLastRecord(Me)
End Sub


Public Sub GotoLastRecord(Obj As Object)
On Error GoTo ERR_GOTO_LAST_RECORD

Dim iRecordPos

iRecordPos = CSBModul.GetNumberOfHuels() - CONST_REC_PER_PAGE
DoCmd.GoToRecord acDataForm, "HUEL_ohne", acGoTo, iRecordPos

EXIT_GOTO_LAST_RECORD:
Exit Sub

ERR_GOTO_LAST_RECORD:
MsgBox CSBModul.GetMsgBoxText("MyError", 50, "")
Resume EXIT_GOTO_LAST_RECORD
End Sub


Wenn ich also z.B. 100 Datensàtze habe, steht in iRecordPos 75, d.h. ich
möchte den Cursor auf den 75. Datensatz positionieren.


Wenn ich jetzt in Form_Load die Zeile
Call CSBModul.GotoLastRecord(Me)
in Kommentar setze, dann erhalte ich die Datensàtze richtig sortiert, der
Cursor steht aber auf dem ersten Datensatz.

Wenn ich in Form_Load die Zeile
Call CSBModul.SortUp(Me)
in Kommentar setze, dann sind die Datensàtze logischerweise nicht sortiert,
der Cursor steht jetzt jedoch auf dem richtigen Datensatz.

Soweit also alles ok.

Wenn ich nun jedoch beide Zeilen aktiv setze, dann erhalte ich
beim Ausführen der Zeile

DoCmd.GoToRecord acDataForm, "HUEL_ohne", acGoTo, iRecordPos

in der Routine GotoLastRecord immer die Fehlermeldung 2501: "Sie können
nicht zu dem angegebenen Datensatz springen."

Hat jemand eine Idee, warum man das Sortieren und GoToRecord nicht
kombinieren kann?

Ich verwende Access 2007.

Gruß
Gerhard Mayer
 

Lesen sie die antworten

#1 Gerhard Mayer
06/11/2008 - 14:44 | Warnen spam
Sorry, die Nummer der Fehlermeldung ist natürlich 2105 und nicht 2501.

Gruß
Gerhard Mayer

Ähnliche fragen