首页 文章

根据主窗体上的复选框查询子报表

提问于
浏览
1

我有以下主表单“编辑服务”,子表单“编辑服务子表单”:

enter image description here

我想根据主表单顶部的复选框过滤子表单,该复选框与子表单中与是/否标准相关的字段相关 .

I.E.如果选中店内包装盒,那么它应该过滤子表格中具有店内的任何商品 . 如果未选中,则应清除过滤器 .

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

2 回答

  • 0

    根据您的示例数据库,似乎代码的True和False条件相反 . 例如,以下行表示"If chbxInShop is False (un-checked) then do the following",即应用子表单过滤器 . 但是,当您选中复选框时,您确实要应用过滤器...意味着它的 .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
    

    如果你以后决定你想要基于表单's check boxes, you' ll的所有4个值的子表单过滤器需要检查它们并创建一个合适的 Filter 字符串,这可能会像...

    strFilter = "[SrvInShop] = True AND [SrvSmallBusiness] = True"
    
  • 0

    答案在原帖中 . 我错误地标记了SubForm ......

相关问题