Beste mensen,
Ik heb in een formulier een annuleerknop gemaakt met de voldende code:
Hier worden ook alle gerelateerde records vewijderd of geupdate. Alleen nou heb ik het volgende probleem: als ik het formulier open in toevoegmodus en ik voer wat dingen in en een gerelateerd record in het subformulier dan krijg ik een popup als ik op de annuleerknop klik waar hij vraagt naar een parameterwaarde 'txt_medewerker_profiel_id'. Als ik in de code over dit 'veld' heen ga met de muis dan krijg ik een melding 'De expressie verwijst naar een object dat is gesloten'. Hoe los ik dit op want dit is echt heel erg irritant en ik snap er niets van.
Ik heb in een formulier een annuleerknop gemaakt met de voldende code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| Private Sub btn_annuleren_Click() On Error GoTo Err_Close Dim dbs As Database, rst_medewerker_nieuw, rst_medewerker_verwijderd As Recordset Dim medewerkerprofiel As TextBox Dim medewerker_nieuw As TextBox Dim message Set dbs = CurrentDb() Set rst_medewerker_nieuw = dbs.OpenRecordset("SELECT * FROM tbl_medewerker_profiel_medewerker WHERE medewerker_profiel_medewerker_status = 'nieuw'", dbOpenDynaset, dbReadOnly) Set rst_medewerker_verwijderd = dbs.OpenRecordset("SELECT * FROM tbl_medewerker_profiel_medewerker WHERE medewerker_profiel_medewerker_status = 'verwijderd'", dbOpenDynaset, dbReadOnly) Set medewerkerprofiel = txt_medewerker_profiel_id Set medewerker_nieuw = Forms!frm_constanten!txt_const_medewerker_profiel_nieuw message = MsgBox("Alle niet opgeslagen gegevens gaan verloren. Wilt u doorgaan?", vbYesNo, "Waarschuwing") If message = vbYes Then If rst_medewerker_nieuw.RecordCount >= 1 Then dbs.Execute "DELETE * FROM tbl_medewerker_profiel_medewerker WHERE medewerker_profiel_id=" & [medewerker_profiel_id] & " AND medewerker_profiel_medewerker_status = 'nieuw';" End If If rst_medewerker_verwijderd.RecordCount >= 1 Then If medewerker_nieuw = 1 Then dbs.Execute "DELETE * FROM tbl_medewerker_profiel_medewerker WHERE medewerker_profiel_id=" & [medewerker_profiel_id] & " AND medewerker_profiel_medewerker_status = 'verwijderd';" Else dbs.Execute "UPDATE tbl_medewerker_profiel_medewerker SET medewerker_profiel_medewerker_status = Null WHERE medewerker_profiel_id = " & medewerkerprofiel & ";" End If End If DoCmd.SetWarnings False DoCmd.RunCommand acCmdUndo DoCmd.SetWarnings True DoCmd.Close acForm, "frm_release_medewerker_profiel", acSaveNo End If dbs.Close Err_Close: txt_medewerker_profiel_id = 0 If message = vbYes Then DoCmd.Close acForm, "frm_release_medewerker_profiel", acSaveNo DoCmd.SetWarnings True End If dbs.Close End Sub |
Hier worden ook alle gerelateerde records vewijderd of geupdate. Alleen nou heb ik het volgende probleem: als ik het formulier open in toevoegmodus en ik voer wat dingen in en een gerelateerd record in het subformulier dan krijg ik een popup als ik op de annuleerknop klik waar hij vraagt naar een parameterwaarde 'txt_medewerker_profiel_id'. Als ik in de code over dit 'veld' heen ga met de muis dan krijg ik een melding 'De expressie verwijst naar een object dat is gesloten'. Hoe los ik dit op want dit is echt heel erg irritant en ik snap er niets van.