Query SubReport based on checkboxes on Main Form
我具有以下主窗体" Edit Services"和一个子窗体" Edit Services SubForm":
我想基于与"是/否"条件下的子表单中的字段相关的主表单顶部的复选框来过滤子表单。
I.E。如果选中了"商店"框,则它应在子表单中过滤所有具有"商店"的内容。如果未选中,则应清除过滤器。
答案
1 2 3 4 5 6 7 | 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 |
根据您的示例数据库,似乎代码的True和False条件颠倒了。例如,以下行的意思是"如果chbxInShop为False(未选中),则执行以下操作",这将应用子窗体过滤器。但是您真的想在选中复选框时应用过滤器...这意味着其
1 | If Me.chbxInShop.Value = 0 Then |
我使用表单为复选框的After Update事件测试了以下代码,它符合我的要求。
1 2 3 4 5 6 7 8 9 10 11 12 | 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个复选框的值来选择子表单过滤器,则需要检查每个复选框并创建一个适当的
1 | strFilter ="[SrvInShop] = True AND [SrvSmallBusiness] = True" |
答案在原始帖子中。我给SubForm贴了错误标签...