PDA

Vollständige Version anzeigen : Selbst ausgetrickst!


Manfred K.
03.11.2001, 10:53
Hallo Forum,
ich probiere seit Stunden alles Mögliche aus, bin zu meinem Problem auch nicht fündig geworden und bin ziemlich rat- und hilflos.

Das folgende Problem tritt nur beim l e t z t e n Datensatz auf:

Wenn der Anwender die Rückfrage bestätigt, ob er den Datensatz tatsächlich löschen will, soll der Datensatz ge-löscht und zum ersten Datensatz gesprungen werden. Der Löschvorgang erfolgt, aber nicht der Rücksprung.
Statt dessen habe ich die leere Maske des Formulars vor mir (der ursprünglich letzte Datensatz ist jetzt gewisser-maßen der neue Datensatz), der Cursor befindet sich im ersten aktiven Steuerelement und meine eigene Ereignis-prozedur „Beim Verlassen“ schlägt zu, die nämlich kontrolliert, ob der User auch einen zulässigen Wert eingetra-gen hat. Jetzt muss der User erst „Abbrechen“ betätigen (d.h. die Aktion „neuen Datensatz eingeben“ wird beendet), danach erfolgt der Rücksprung zum ersten Datensatz.
Wie kann ich
entweder nach dem Löschen unmittelbar zum ersten Datensatz kommen?
oder die Meldung meiner eigenen Ereignisprozedur „Beim Verlassen“ auffangen?
Schon vorauseilend vielen Dank!
Manfred

Ikke
03.11.2001, 13:37
Hallo Manfred,

Das Problem dürfte sein, daß durch den Sprung zum ersten Datensatz das Ereignis "Beim Verlassen" ausgeführt wird. Und das bedeutet, daß Du dieses Ereignis abfangen mußt, wenn der Datensatz leer ist.
Ich kenne leider den Aufbau Deines Datensatzes nicht, aber vielleicht ist ja dieses eine Lösung für Dich:
Beim Ereinis "Beim Verlassen" fügst Du eine If-Then-Bedingung ein. Die könnte umgefähr so aussehen:

If Not IsNull(Me!Feld) then
'Hier folgen Deine gesamten Anweisungen!
End If

Als Feld solltest Du Dir ein Feld des Datensatzes aussuchen, das auf jedem Fall irgendeinen Inhalt enthalten muß! Beim ID-Feld könnte es unter Umständen zu Problemen führen, da ich nicht weiß, od dieses Feld vor der ersten Eintragung im Datensatz den Wert Null hat, das müßtest Du vielleicht mal ausprobieren. ;)