PDA

Vollständige Version anzeigen : "globaler" Bookmark


batio7680
24.03.2004, 12:23
Hallo Forum,

beim Öffnen meines Formular such ich über die FindNext-Methode meinen aktuellen Datensatz und markiere ihn mit einem Bookmark.

Mit Hilfe des Timers möchte ich diesen Datensatz von Zeit zu Zeit aktualisieren und dann auf mein Bookmark zurückgreifen, so dass nicht unnötig Ressourcen für das erneute Suchen des Datensatzes verloren gehen, aber ich bekomme immer Laufzeitfehler 3159 "Kein gültiges Lesezeichen". Was mach ich falsch? Oder kann Access nicht formularweit einen Bookmark setzen? Gibs es eventuell eine andere Lösungsmöglichkeit??

Option Compare Database
Option Explicit

Public MarkAktuellerDSP As String ' Datensatzmarkierung

Private Sub Form_Open(Cancel As Integer)
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim AktuellerDSP as long
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblFuehrung", dbOpenDynaset)

... ' Bestimmen des aktuellen DSP

rs.MoveFirst
rs.FindNext "[Lfdnr] = " + Str(AktuellerDSP)
MarkAktuellerDSP = rs.Bookmark ' Markierung des aktuellen DSP

...

End Sub

Private Sub Form_Timer()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblFuehrung", dbOpenDynaset)

... ' mache irgendwas

rs.Move 0, MarkAktuellerDSP ' springe zum Lesezeichen <== hier kommt der Laufzeitfehler

.... ' aktualisiere Datensatz

End Sub

Schon mal im voraus Besten Dank für eure Tipps!

MfG
batio7680
----------------
WinNT, Access97

batio7680
24.03.2004, 13:11
Hallo Forum,

ich weiß is ziemlich stumpf sich selber zu helfen, aber ich hab das Problem schon gelöst! ;-)

Hier die Lösung:

Option Compare Database
Option Explicit

Dim MarkAktuellerDSP As String ' Datensatzmarkierung
Dim db As DAO.Database
Dim rs As DAO.Recordset

Private Sub Form_Open(Cancel As Integer)
Dim AktuellerDSP as long
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblFuehrung", dbOpenDynaset)

... ' Bestimmen des aktuellen DSP

rs.MoveFirst
rs.FindNext "[Lfdnr] = " + Str(AktuellerDSP)
MarkAktuellerDSP = rs.Bookmark ' Markierung des aktuellen DSP

...

End Sub

Private Sub Form_Timer()

... ' mache irgendwas

rs.Move 0, MarkAktuellerDSP ' springe zum Lesezeichen
.... ' aktualisiere Datensatz

End Sub

Private Sub Form_Timer()
rs.Close ' wir wollen ja sauber bleiben ;)
End Sub

Dennoch euch allen Besten Dank!

MfG
batio7680