清除访问

时间:2015-10-16 17:14:23

标签: checkbox access-vba

我有一个包含子表单查询的表单。子表单查询有一行复选框(绑定到表),供用户选择多个项目。当用户按下命令按钮时,将运行另一个查询以搜索标记为true的所有复选框,然后打开另一个表单。我试图使其成为当按下另一个命令按钮时,子窗体查询中的所有复选框值都变为false。到目前为止,我使用的代码只将最后选中的复选框更改为false。如何让它将所有值更改为false?

Dim ctl As Control

For Each ctl In Me.SuppliesQuerySubform.Controls
    If ctl.ControlType = acCheckBox Then
        If ctl.Value <> False Then
            ctl.Value = False
        End If
    End If
Next ctl

1 个答案:

答案 0 :(得分:0)

您有两种选择:

1)使用SQL更新记录。类似于UPDATE tblItems SET IsSelected = FALSE WHERE ...将tblItems替换为您的表,IsSelected与复选框绑定的字段。)然后您应该使用.Requery刷新子表单

2)使用RecordsetClone。这实际上是子表单中显示的记录的副本,您可以循环并更新。

With Me.RecordSetClone
   .MoveFirst
   Do While .Eof = false
      .Edit
      .Fields("IsSelected") = FALSE
      .Update
      .MoveNext
   Loop
End With