2017-03-16 40 views
0

我有一点问题。运行时错误3001'参数的类型错误或超出可接受的范围...'Visual Basic 6

我要过滤的数据网格在Visual Basic 6,我使用此代码

Adodc1.Recordset.Filter = "columnname like '%" + Me.Txtsearch.Text + "%'"

一切都很顺利。当我在文本框中输入“a”时,将出现字母“a”的数据。但是,当这封信是从文本框中取出,会出现这样的

Runtime error 3001 'Arguments are of the wrong type or out of acceptable range, or are in conflict with one another'

这里的错误是错误的截图:

Error message

任何人都可以向我解释为什么出现这种情况?

+2

由于新用户加入,每隔几分钟,你可能不再对堆栈溢出的最新成员。 –

+0

您是否尝试添加一个If如果检查文本框是否包含值? – gizlmo

+0

你是什么意思“包含一个值”?对不起,我是初学者:) –

回答

4

发生错误是因为您没有将任何参数传递给过滤器。 尝试把它如下:

if trim(Me.Txtsearch.Text) <> "" then 
    Adodc1.Recordset.Filter = "columnname like '%" + Me.Txtsearch.Text + "%'" 
else 
    Adodc1.Recordset.Filter = "" 
end 
+2

我会添加一个'else'子句来设置Adodc1.Recordset.Filter =“”',因此如果搜索文本框为空,它会清除筛选器。 –

+1

Yeap,这是个好主意! –

+0

因此,点击[编辑]按钮,并改善您的答案... –

相关问题