![]() |
|
|
zurück zur ÜbersichtDiskussionsgruppe: DatenbankenHallo zusammen,
Von: AMKD Datum: 05.03.2007, 11:47
alle Antworten zu dieser FrageAntwort 1 von Teddy7 vom 06.03.2007, 07:55 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.2007, 12:55 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.2007, 13:47 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.2007, 13:57 Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("speichern?", vbYesNo) = vbNo Then Cancel = 1 End Sub Antwort 5 von Proggi vom 06.03.2007, 13:59 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.2007, 14:53 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 Antworten der Gruppe: Datenbanken
|
07121 07122 07123 07124 07125 07126 07127 07128 |