使用复选框筛选数据

时间:2018-06-14 21:00:23

标签: ms-access checkbox filter

我想要选中复选框或按钮(位于此屏幕顶部)时,它不会显示"已取消"或者"收到"在“状态”列中。

picture

项目名称:

  1. 状态搜索框被称为" S_Status"
  2. 状态下拉菜单名为"状态"
  3. 从Query" N_Q_PlacingOrders_Status"中提取下拉选项。它来自Table" N_T_Placing Orders_Status"。
  4. 复选框名称为" CheckBox"
  5. 我尝试了下面的代码,但我知道我遗漏了一些我在其他博客/论坛中找不到的东西。

    Private Sub CheckBox_Click()
        If CheckBox = True Then
            DoCmd.ApplyFilter , Status = True
            If CheckBox = False Then
                Exit Sub
            End If
        End If
    End Sub
    

1 个答案:

答案 0 :(得分:0)

看起来你走在正确的轨道上。有两点需要注意:

1)在下面的代码中,这些行(If CheckBox = False Then |Exit Sub |End If)基本上没有意义,除非你想让False实际做某事,它只是额外的松懈。因此,删除辅助If语句是有益的。

If CheckBox = True Then
    DoCmd.ApplyFilter , Status = True
End If

2)在这种情况下使用过滤器可能不是实现目标的最简单方法。试试这个:

If CheckBox = True Then
    Status.RowSource = "SELECT * FROM N_Q_PlacingOrders_Status WHERE " & _
        "Status NOT IN ('Recieved', 'Cancelled')"
End If

注意:根据您尝试提取的行的要求,可能需要修改SELECT语句(但我没有这些信息)。