我们在一个vb工程中用到TrueDBGrid Pro 8.0控件,在后期更改过程中我们想把它的Filter功能再添加上去(以前隐藏掉了),可当我们把它的FilterBar属性设为True之后,执行时抛出这样的异常:Provider过滤器不能被打开。Filter的函数如下:
Private Sub TDBGrid1_FilterChange()
On Error GoTo errHandler
Set cols = TDBGrid1.Columns
Dim c As Integer
c = TDBGrid1.col
TDBGrid1.HoldFields
Adodc1.Recordset.Filter = getFilter()
TDBGrid1.col = c
TDBGrid1.EditActive = True
Exit Sub
errHandler:
MsgBox Err.Source & ":" & vbCrLf & Err.Description
For Each col In TDBGrid1.Columns
col.FilterText = ""
Next col
End Sub
Private Function getFilter() As String
Dim tmp As String
Dim n As Integer
For Each col In cols
If Trim(col.FilterText) <> "" Then
n = n + 1
If n > 1 Then
tmp = tmp & " AND "
End If
tmp = tmp & col.DataField & " LIKE '" & col.FilterText & "%'"
End If
Next col
getFilter = tmp
End Function
Debug状态下在紫色字体那句时抛出异常,怀疑跟ADODB的什么设置有关,还请各位大虾不吝赐教!