Wenn Optionsfeld betätigt, vorherigen alten Eintrag löschen

28/11/2007 - 21:28 von Andreas Kugel | Report spam
Hallo,
in einem Formular habe ich zwei Optionsfelder.
Dieses aktiviert je nach Wahl ein Textfelder oder deaktiviert dies bzw.
blendet ein anderes aus oder ein.

Nun ist aufgefallen,
wenn bereits Eintràge in eines dieses Textfelder gemacht wurden und man sich
danach zu der anderen Option entschied,
ohne vorheriges Speichern, das diese Eintrage in die Datenbank geschrieben
wurden,
wenn das Formular verlassen wird.
Nun habe ich, um die abzuschalten,
mittels value das Feld auf Null gesetzt, dies hat mir nur die leeren
Datensatze gebracht.

Private Sub Optionsfelder_AfterUpdate()
'Blendet oder aktiviert je nach Option Standard oder Modular untenstehende
Textfelder ein und aus.
If Me!Optionsfelder = 1 Then
Me!ET_LongCode.Visible = False
Me!ET_LongCode.value = Null
Me!Artikelnummer.Enabled = True
Me!Artikelnummer.value = Null
Else
Me!ET_LongCode.Visible = True
Me!ET_LongCode.value = Null
Me!Artikelnummer.Enabled = False
Me!Artikelnummer.value = Null
End If
End Sub

Wird das Formulars mittels Button mit nachfolgendem Script verlassen, wird
ein leerer Datensatz angefügt.

Private Sub VS_Stammdaten_Click()
On Error GoTo Err_VS_Stammdaten_Click
Me.Refresh
Dim strMsg As String
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frm_Datensuche"

strMsg = "Möchten Sie wirklich abbrechen?" & vbNewLine & "Nicht
abgespeicherte Eingaben werden nicht übernommen!"
If MsgBox(strMsg, vbYesNo + vbQuestion, "VS - Insel") <> vbYes Then Exit
Sub
DoCmd.Close acForm, Me.Name, acSavePrompt
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_VS_Stammdaten_Click:
Exit Sub
Err_VS_Stammdaten_Click:
MsgBox Err.Description
Resume Exit_VS_Stammdaten_Click
End Sub


Gespeichert sollen die Daten nur über das Script werden:

Private Sub Speichern_Click()
On Error GoTo Err_Speichern_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.GoToRecord , , acNewRec
Me.Refresh
Me.Requery

Exit_Speichern_Click:
Exit Sub
Err_Speichern_Click:
MsgBox Err.Description
Resume Exit_Speichern_Click
End Sub


Was mache ich falsch?

Gruß
Andreas
 

Lesen sie die antworten

#1 Karl Donaubauer
28/11/2007 - 21:46 | Warnen spam
Andreas Kugel wrote:
...Nun ist aufgefallen,
wenn bereits Eintràge in eines dieses Textfelder gemacht wurden und
man sich danach zu der anderen Option entschied,
ohne vorheriges Speichern, das diese Eintrage in die Datenbank
geschrieben wurden, wenn das Formular verlassen wird.
Nun habe ich, um die abzuschalten,
mittels value das Feld auf Null gesetzt, dies hat mir nur die leeren
Datensatze gebracht.

Private Sub Optionsfelder_AfterUpdate()
'Blendet oder aktiviert je nach Option Standard oder Modular
untenstehende Textfelder ein und aus.
If Me!Optionsfelder = 1 Then
Me!ET_LongCode.Visible = False
Me!ET_LongCode.value = Null
Me!Artikelnummer.Enabled = True
Me!Artikelnummer.value = Null
Else
Me!ET_LongCode.Visible = True
Me!ET_LongCode.value = Null
Me!Artikelnummer.Enabled = False
Me!Artikelnummer.value = Null
End If
End Sub

Wird das Formulars mittels Button mit nachfolgendem Script verlassen,
wird ein leerer Datensatz angefügt.

Private Sub VS_Stammdaten_Click()
On Error GoTo Err_VS_Stammdaten_Click
Me.Refresh
Dim strMsg As String
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frm_Datensuche"

strMsg = "Möchten Sie wirklich abbrechen?" & vbNewLine & "Nicht
abgespeicherte Eingaben werden nicht übernommen!"
If MsgBox(strMsg, vbYesNo + vbQuestion, "VS - Insel") <> vbYes
Then Exit Sub
DoCmd.Close acForm, Me.Name, acSavePrompt
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_VS_Stammdaten_Click:
Exit Sub
Err_VS_Stammdaten_Click:
MsgBox Err.Description
Resume Exit_VS_Stammdaten_Click
End Sub


Gespeichert sollen die Daten nur über das Script werden:

Private Sub Speichern_Click()
On Error GoTo Err_Speichern_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70 DoCmd.GoToRecord , , acNewRec
Me.Refresh
Me.Requery

Exit_Speichern_Click:
Exit Sub
Err_Speichern_Click:
MsgBox Err.Description
Resume Exit_Speichern_Click
End Sub


Was mache ich falsch?



Schon die erste Eingabe oder auch das Null-Setzen eines Feldes
erzeugt einen Datensatz. Um das im Nachhinein noch abzubiegen
musst du ein Undo veranstalten, s. <F1> dazu und

Rückfrage vor dem Speichern
www.donkarl.com?FAQ4.32

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Access-Entwickler-Konferenz: www.donkarl.com/?AEK
SQL Server-Entwickler-Konferenz: www.donkarl.com/?SEK

Ähnliche fragen