如何过滤已过滤的 DataGridView [VB 2010 Express / MS Access]

How do I filter a filtered DataGridView [VB 2010 Express / MS Access]

那么如何过滤一个已经被过滤的DataGridView呢?

我有一个名为 "tbl_att" 的 table,其中包含以下列:id_num、att_date、状态。

在我的表单中,有一个过滤学号 (id_num) 的文本框 (txt_studnum)。代码是:

    Private Sub viewatt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    provider2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
    dataFile2 = "C:\DATABASE\rams.accdb" 
    connString2 = provider2 & dataFile2
    myConnection2.ConnectionString = connString2
    da = New OleDbDataAdapter("Select [IDNum], [att_date], [status] from tbl_att", myConnection2)
    da.Fill(ds, "tbl_att")


    Dim view1 As New DataView(tables(0))
    source1.DataSource = view1
    DataGridView1.DataSource = view1
    DataGridView1.Refresh()

    End Sub

为此执行事件是通过单击按钮:

Private Sub btn_search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_search.Click

 source1.Filter = "[IDnum] = '" & txt_idnumber.Text & "' "

End Sub

发生的事情是,用户将输入 ID 号,单击按钮,DataGridView (DataGridView1) 将显示筛选结果。

我想要做的是通过使用将过滤 "status" 的组合框来过滤 DGV1 中已经过滤的数据。此组合框将包含 "Present"、"Absent" 和 "Late" 作为项目,对应于 "status" 列中的数据。

我尝试制作另一个用于过滤状态的按钮:

source1.Filter = "[status] = '" & cmb_status.Text & "' "

但无论 ID 号如何,DGV 都会显示所有出席、缺席或迟到。希望任何人都可以帮助我。我也为糟糕的英语道歉。谢谢!

第二个过滤器使用:

source1.Filter = "[IDnum] = '" & txt_idnumber.Text & "'  AND [status] = '" & cmb_status.Text & "' "