Twee tabellen A en B in relatie (1 op veel) met elkaar. Worden op één formulier getoond. Wanneer de gebruiker het scherm wil sluiten (de handeling stopzetten zonder te bewaren) zijn er drie mogelijkheden.
1. de gebruiker heeft nog niets ingevuld
2. de gebruiker heeft enkel in het deel "parent" gegevens ingevuld
3. de gebruiker heeft eveneens in het deel "child" gegevens ingevuld
Ik probeer deze handelingen te beheersen met de commando's "Me.Recordset.Delete" en "DoCmd.RunCommand acCmdDeleteRecord". Maar aangezien hier ook een subformulier gekoppeld is, loopt het nogal chaotisch en werkt mijn oplossing niet. Als ik het formulier sluit met de eigenschap "acSaveNo" blijkt het record toch in de tabel bewaard te zijn. "Me.Recordset.Delete" geeft een fout "Geen record gevonden", hoewel het record wel bewaard is. Ik kan dan via het commando "DoCmd.RunCommand acCmdDeleteRecord" dit record wel verwijderen. Access geeft dan zelfs eerst een waarschuwing. Dus het record is aangemaakt. Waarom wordt het dan niet verwijderd met het commando "Me.Recordset.Delete"? Ik begrijp het hier niet goed. Hieronder mijn klungelachtige code.
1. de gebruiker heeft nog niets ingevuld
2. de gebruiker heeft enkel in het deel "parent" gegevens ingevuld
3. de gebruiker heeft eveneens in het deel "child" gegevens ingevuld
Ik probeer deze handelingen te beheersen met de commando's "Me.Recordset.Delete" en "DoCmd.RunCommand acCmdDeleteRecord". Maar aangezien hier ook een subformulier gekoppeld is, loopt het nogal chaotisch en werkt mijn oplossing niet. Als ik het formulier sluit met de eigenschap "acSaveNo" blijkt het record toch in de tabel bewaard te zijn. "Me.Recordset.Delete" geeft een fout "Geen record gevonden", hoewel het record wel bewaard is. Ik kan dan via het commando "DoCmd.RunCommand acCmdDeleteRecord" dit record wel verwijderen. Access geeft dan zelfs eerst een waarschuwing. Dus het record is aangemaakt. Waarom wordt het dan niet verwijderd met het commando "Me.Recordset.Delete"? Ik begrijp het hier niet goed. Hieronder mijn klungelachtige code.
Code:
Private Sub cmbAnnuleer_Click()
On Error GoTo foutafhandeling
Me.Recordset.Delete
Me.SFsubfrmNieuwAccount.Form.Recordset.Delete
DoCmd.Close acForm, "frmNieuwAccount", acSaveNo
Exit Sub
GeenRecordGevonden:
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, "frmNieuwAccount", acSaveNo
Exit Sub
foutafhandeling:
If Err.Number = 3021 Then
Resume GeenRecordGevonden
Else
DoCmd.Close acForm, "frmNieuwAccount", acSaveNo
End If
End Sub