Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

gebundenes Formular wird zwischenzeitig gespeichert?

Begonnen von Doming, April 14, 2026, 11:35:15

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

irgendwie stehe ich gerade auf dem Schlauch.
Ich habe ein gebundenes Formular, bei dem ich jetzt noch Einträge aus einer Tabelle einfügen möchte
Private Sub TxFANr_AfterUpdate()
 Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT Auftrag, Pos, LWNr " _
                                   & "FROM Tabelle1 " _
                                   & "WHERE FA = '" & Me.TxFANr & "'")
    If Not (rs.BOF And rs.EOF) Then
        Me.Tx1 = rs!Auftrag
        Me.Tx2 = Nz(rs!Pos, "")
        Me.Tx3 = Nz(rs!LWNr, "")
        Me.Tx4 = "FA " & Me.TxFANr
    End If
Ende:
    On Error Resume Next
    rs.Close
    Set rs = Nothing
    Exit Sub
Fehler:
    Fehlerprot Err.Number, Err.Description
    Resume Ende
End Sub
Setze ich eine Haltemarke auf Exit Sub, kann ich sehen, dass alle Einträge vorgenommen wurden. Drücke ich dann F8, verschwinden alle Einträge und die Eingaben wurden gespeichert.
Ich habe ein gebundenes Feld mit der ID, rufe ich das Formular auf, steht darin die neue ID. Nach der obigen Eingabe springt das ID-Feld auf "New", also wurden die Eingaben offenbar gespeichert und es wurde zu einem neuen Datensatz gesprungen. Aber wieso? Es gibt kein Form_AfterUpdate, kein Me.Requery oder Me.Refresh. Gespeichert werden soll das Formular erst nach Drücken eines Buttons.

Ist bestimmt nur ein Verständnisfehler aber ich komm nicht drauf, hat jemand von Euch nen Tipp?

Gruß
 Doming

MzKlMu

Hallo,
Access speichert im Regelfall gebundene Formulare immer automatisch. Wenn man das nicht will, muss das im Ereignis "Vor Aktualisierung (Form_BeforeUpdate)" durch setzen des Parameters "Cancel" auf True verhindert werden. Dort bringt man dann zweckmässigerweise eine Rückfrage (Soll gespeichert werden ?) unter. Und das wäre dann der Button der gedrückt werden muss.
Gruß Klaus

Doming

Danke für die Antwort Klaus, es ist mir schon klar, dass gebundene Formulare automatisch gespeichert werden, aber wieso wird während des Ausfüllens zu einem neuen Satz gesprungen?

Doming

Hm, ich habe jetzt damit beholfen, im Form_BeforeUpdate Cancel grundsätzlich auf true zu setzen, es sei denn, ich drücke auf den Speichern-Button. Trotzdem wurden, während ich Daten eingegeben habe, einige Felder wieder geleert, diesmal aber ohne zu speichern. Ich bleibe verwirrt...

PhilS

Ist TxFANr das letztes Steuerelement in der Aktivierreihenfolge und das AfterUpdate wird ausgelöst, wenn du im Feld Tab drückst und damit zu eine neuen Datensatz wechselst?
Das wäre eine logische Erklärung.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Doming

Hm, tatsächlich...
Da ich TxFANr nachträglich in ein bestehendes Formular eingefügt habe, war es natürlich in der Reihenfolge ganz unten.
Ich habe das jetzt mal weiter nach oben geschoben und jetzt wird das Formular-Ereignis BeforeUpdate nicht mehr angesprochen.
Den Tabulator habe ich nicht betätigt, aber Enter natürlich (und somit das AfterUpdate ausgelöst), klar, dass er danach dann zum "nächsten" Element springen will.
Danke für den Hinweis, nun ist meine Erde wieder rund.

Gruß
 Doming

Bitsqueezer

Hallo,

Du kannst aber auch das Formular so einstellen, daß mit TAB nicht zum nächsten Datensatz gesprungen (und damit automatisch gespeichert) wird. Dann springt der Cursor beim letzten Feld wieder auf das erste.

Denk dran, daß ein Verlassen eines Unterformulares auch Save im Unterformular auslöst. Wenn Deine Buttons in einem Hauptformular liegen, dann ist beim Klick bereits gespeichert worden.

Gruß

Christian

Beaker s.a.

Hallo Doming,

Die benötigte Eigenschaft des Formulars heisst: "Zyklus" (Reiter "Andere").
Wobei "Alle Datensätze" zum Sprung auf einen neuen führt, und
"Aktueller Datensatz" eben dieses verhindert.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)