我有一个包含子表单查询的表单。子表单查询有一行复选框(绑定到表),供用户选择多个项目。当用户按下命令按钮时,将运行另一个查询以搜索标记为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
答案 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