选中复选框时如何通知

时间:2019-02-15 09:18:24

标签: vba ms-access checkbox access-vba

通过自定义功能执行检查时,无法识别复选框的更改。

我们有一个可以单击复选框的表格。在这种情况下,记录将添加到列表中,并使用保存功能对其进行更新。并且提到了用于选中所有复选框的功能,但是这与我单击单个复选框时的行为不一样。

代码“全选”

ModelValue_B

点击复选框

ChildValue

当前使用全选功能时,复选框的状态未保存。仅当单独选中一个复选框时。

在两种情况下都应正确保存。

2 个答案:

答案 0 :(得分:0)

使用 AfterUpdate 事件:

Private Sub Befehl83_Click()

    With Me.RecordsetClone
        .MoveFirst
        Do Until .EOF
            If !visited.Value = False Then
                .Edit
                !visited.Value = True
                .update
            End If
            .MoveNext
        Loop
    End With

End Sub

答案 1 :(得分:0)

这不是一个理想的解决方案:

Private Sub Befehl83_Click()
    With Me.Recordset
        .MoveFirst
        Do Until .EOF
            .Edit
            .Fields("visited") = True
            .Update
            Call chkVisited_Click()
            .MoveNext
        Loop
    End With
End Sub

这将主动更新记录集,实际上您会看到活动记录在表单中移动。

另一种解决方案是重新构建代码,并根据表单的记录集直接对基础数据源进行更新。然后相应地更新您的列表。

根据文档,RecordsetClone是表单记录集的只读副本。 https://docs.microsoft.com/en-us/office/vba/api/access.form.recordsetclone