我有以下主表单“编辑服务”,子表单“编辑服务子表单”:
我想根据主表单顶部的复选框过滤子表单,该复选框与子表单中与是/否标准相关的字段相关。
即。如果选中店内包装盒,那么它应该过滤子表格中具有店内的任何商品。如果未选中,则应清除过滤器。
ANSWER
Private Sub chbxInShop_Click()
If Me.chbxInShop.Value Then
Me.[Edit Services SubForm].Form.Filter = "[SrvInShop] = True"
Me.[Edit Services SubForm].Form.FilterOn = True
Me.[Edit Services SubForm].Form.Requery
End If
End Sub
答案 0 :(得分:0)
答案在原帖中。我错误地标记了SubForm ...
答案 1 :(得分:0)
根据您的示例数据库,似乎代码的True和False条件相反。例如,以下行表示“如果chbxInShop为False(未选中),则执行以下”,即应用子表单过滤器。但是,如果选中复选框,您确实要应用过滤器...意味着其.Value
为True(-1)。
If Me.chbxInShop.Value = 0 Then
我使用您的表单为复选框的After Update事件测试了以下代码,它完成了我认为您要求的内容。
Private Sub chbxInShop_AfterUpdate()
Dim strFilter As String
strFilter = vbNullString ' make it explicit
If Me.chbxInShop.Value = True Then
strFilter = "[SrvInShop] = True"
End If
With Me.[Edit Services SubForm].Form
.Filter = strFilter
.FilterOn = Me.chbxInShop.Value
End With
End Sub
如果您以后决定要根据表单的所有4个复选框的值来确定子表单过滤器,则需要检查每个表单并创建一个合适的Filter
字符串,这可能会结束为类似......
strFilter = "[SrvInShop] = True AND [SrvSmallBusiness] = True"