各位老师好,我知道可以用这种方式实现全表搜索:
http://www.foxtable.com/help/index.html?n=1534.htm
Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("窗口1_Table1")
If txt = "" Then
tbl.Filter = ""
Else
txt = "'%" & txt & "%'"
tbl.Filter = "客户ID Like " & txt & " Or 公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " & txt
End If
这样我们在文本框中输入任何内容,Table就会自动进行模糊筛选,显示客户ID、公司名称、地址、联系人这四列中,任何一列包括输入内容的行。
注意只有字符列才能使用Like进行模糊筛选,其它列类型是不可以的。
那可以不可以用遍历列的形式来写 tbl.Filter = "客户ID Like " & txt & " Or 公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " & txt
就不用把所有列都写在里面了。
Dim Filter As String = "1=1"
For Each c As DataCol In DataTables("VIP基本信息大海_VIP基本信息").DataCols
With e.Form.Controls("搜索框")
If .Value IsNot Nothing Then
Filter = "c = '" & .Value & "' " 哈,这样写肯定不对,因为C不是列名。不知道有没有这样的方法。。。
End If
End With
Next
If Filter > "" Then
DataTables("VIP基本信息大海_VIP基本信息").LoadFilter = filter
DataTables("VIP基本信息大海_VIP基本信息").Load()
End If