Hallo Walter,
du solltest ein neues Textfeld anlegen ohne Stuerelementinhalt. Dann kannst du dem jeweiligen Button, mit dem du die Datensätze wechselst, folgende Zeile anhängen, um das neue Textfeld mit der jeweils laufenden Nummer zu befüllen:
Beispiel Button 'Nächster Datensatz
DoCmd.GoToRecord , , acNext
[Neues_Textfeld] = [lfd_Nummer]
Das Feld ‚lfd_Nummer‘ sollte unsichtbar gemacht werden. Dazu darfst du aber keinesfalls die Eigenschaft ‚sichtbar‘ auf ‚nein‘ stellen, denn mit der nachfolgenden Suchprozedur wird der Focus auf dieses Feld gesetzt.
Stattdessen mussst du die Eigenschaft ‚Höhe‘ des Feldes ‚lfd_Nummer‘ auf 0 stellen und den Rahmen der Hintergrundfarbe anpassen. Dann leg das Feld ‚lfd_Nummer‘ in irgendeine Ecke des Formulars. Das neue Textfeld muss die Stelle des alten Feldes einnehmen.
Dann trägst du bei der Eigenschaft ‚Bei Fokusverlust‘ des neuen Textfeldes folgende Prozedur ein:
dim gv_suchwert
gv_suchwert = [Neues_Textfeld]
Forms![frm_Formularname]![lfd_Nummer].SetFocus
DoCmd.FindRecord gv_suchwert, , True, , True
Der eingegebene Wert wird dann nicht mehr den Datensatz ändern, sondern es wird nur noch auf die eingegebene Datensatz-Nr. gesprungen.
Allerdings solltest du noch eine Fehlerquelle ausschalten: Wenn ein Wert eingegeben wird, der als Datensatz nicht vorhanden ist, sollte dies mit einer ordentlichen Meldung angezeigt werden.
Wenn es nicht klappen sollte, melde dich einfach wieder.
Gruß Ralph
PS: Ich bin davon ausgegangen, dass der Wert lfd_Nummer ohne Duplikate ist (sonst funktioniert es nicht)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]