online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon AMKD vom 05.03.2019, 11:47 Options

keine automatische Speicherung --> Speicherungsabfrage

Hallo zusammen,

ch brauche mal eure kompente Hilfe .

Und zwar habe ich ein Formular wo man Daten zu Mitarbeitern einträgt. Ich möchte jetzt, dass bevor das Formular geschlossen wird eine Abfrage kommt, ob die Änderungen gespeichert werden sollen oder nicht.
Momentan speichert Access alles automatisch. Doch das will ich nicht.

Könnt ihr mir sagen, wie ich das mit einem vb-code schreiben kann.

danke,

Mfg
AMKD


Antwort schreiben

Antwort 1 von Teddy7 vom 06.03.2019, 07:55 Options

2 Möglichkeiten:

entweder direkt auf dem Formular mit ungebundenen Feldern arbeiten und einen extra Befehlsbutton dazulegen, der dann die Daten speichert (also per VBA-Coding den Datensatz liest, editiert, ändert und updated.
Oder in einem geeigneten Ereignis per Inputbox-befehl abfragen, ob speichern oder nicht und wenn nicht dann den Befehl docmd.undo absetzen.
Gruß
Teddy

Antwort 2 von AMKD vom 06.03.2019, 12:55 Options

Hallo Teddy,

ja, ich möchte ein extra Befehlsbutton anlegen und diesen dann mit einem Vb-code versehen. Doch wie heißen die Befehle. Kannst du mir da helfen?

Dim antwort
antwort = MsgBox("Möchten Sie den Datensatz wirklich speichern?", vbYesNo + vbCritical, "DS speichern")
If antwort = vbYes Then
......

weiter weiß ich nicht

Antwort 3 von Teddy7 vom 06.03.2019, 13:47 Options

z.B.:
Dim ttab1 As DAO.Recordset
Dim ktab1 as string
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblKunden", dbOpenDynaset)
ktab1 = "Schlüssel = " & Schlüsselfeld
ttab1.findfirst ktab1
if ttab1.nomatch = true then
ttab1.addnew
else
ttab1.edit
end if
ttab1!Feld1 = txtFeld1
....usw.... 'Autowert nicht befüllen
ttab1.update
ttab1.Close
Set ttab1 = Nothing

und nicht vergessen den Verweis auf Microsoft DAO zu setzen.
Gruß
Teddy

Antwort 4 von Proggi vom 06.03.2019, 13:57 Options

Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("speichern?", vbYesNo) = vbNo Then Cancel = 1
End Sub

Antwort 5 von Proggi vom 06.03.2019, 13:59 Options

p.s. es gibt kein Ja/Nein/Abbrechen an der stelle da man den datensatz einfach nicht verläßt...

du müstest einfach die ESC-Taste drücken um die änderungen zu verwerfen oder machst einen Knopf der das macht. Du kommst solange du auf "Nein" klickst einfach nicht aus den datensatz raus.

Antwort 6 von AMKD vom 06.03.2019, 14:53 Options

Hallo teddy und proggi,

danke für eure Tipps.

Ich habe jetzt folgendes geschrieben:

Private Sub speichern_Click()

If vbNo = MsgBox("Möchten Sie speichern?", vbQuestion + vbYesNo, "Frage") Then
Cancel = True
Me.Undo
DoCmd.Close
Else
DoCmd.Save acForm, "Hauptformular"
DoCmd.Close
End If

End Sub

... und es funktioniert.

Mein Problem ist aber noch, das ich in meinem Formular Unterformulare als Registerkarten eingefügt habe und der VB-Code nur bei den Daten im Hauptformular funktioniert.
Bei den Unterfromularen speichert es immernoch auto. wenn ich was ändere.

Könnt ihr mir sagen, wie ich das hin bekomme, das die Speicherabfrage auch auf die Unterformulare übernommen wird.

danke,

MFG
AMKD

Ähnliche Themen

Speicherung von IP-Adressen
TippInfo  03.10.2007 - 65 Hits - 13 Antworten

automatische windows updates
Viper01  02.02.2008 - 125 Hits - 2 Antworten

Mein rechner spinnt brauche dringent hilfe
alfa-freak  07.02.2008 - 30 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026