窗口1中,插入一个Table控件,类型为
Normal表,插入一个 DropDownBox控件,Click事件代码
Dim Filter As String
With e.Form.Controls("dropBox1")
If .Value IsNot Nothing Then
Filter = "类别 = '" & .Value & "'"
End If
End With
If Filter > "" Then
Tables("窗口1_Table1").Filter = Filter
End If
当我对窗口1_Table1筛选后,新增一行,新增的一行为什么也被筛选掉了,我新增行的时候不是没点击控件吗,应该没启动Filter。
只要窗口表格设置了筛选条件,不符合条件的数据当然看不到了,新增的行类别是没有值的,如果要保留,新增后给类别赋值即可
dim r as row = Tables("窗口1_Table1").addnew
r("类别") = e.Form.Controls("dropBox1").text
蓝老师:对代码执行的时效性没有搞明白。Click事件代码,用鼠标单击控件的时候执行。我理解的是单击一次,就Filter一次,执行完毕后,在下次单击控件前就不在重新执行Filter了。
然后我新增行或者修改窗口1_Table1某一行的类型数据,但不去单击DropDownBox控件,应该是不会执行Filter,为何新增行或者修改行被Filter掉了?
这个和事件的执行没有什么关系,表格设置了筛选条件,只要不更改这个条件,那么这个筛选就是一直有效的