标准表达式中的错误3464数据类型不匹配

时间:2013-11-25 22:01:09

标签: vba ms-access access-vba ms-access-2010

我在ms access 2010中有一个连续的表单,它由文本框过滤,用户在其中输入一个数字。基础数据表中的筛选字段是数据类型编号,它还在表设计视图中读取Long Integer。我假设文本框提供了一个字符串,因此我的文本框更新后方法在设置过滤器参数代码之前将textbox.Value转换为数字格式。问题是,我尝试转换filterval变量的每种方式都会导致不同的错误。将filterval转换为Long会导致错误3464数据类型在行的条件表达式中不匹配:

    .Filter = "[ClientNumber]='" & filterval & "'"

如果数据表中的ClientNumber字段是Long Integer,我如何更改代码以便后更新方法可以无错误地过滤表单?这是我目前的txtFilter文本框更新后方法的代码:

Dim filterVal As Long
filterval = CLng(txtFilter.Value)
With Forms!Main!NavigationSubform.Form!NavigationSubform.Form 
    .Filter = "[ClientNumber]='" & filterval & "'"
    .FilterOn = True  

1 个答案:

答案 0 :(得分:2)

由于[ClientNumber]是Long Integer,因此在构建.Filter字符串时不要用引号将 filterval 括起来。

.Filter = "[ClientNumber]=" & filterval

实际上,您不应该需要 filterval 变量。试试这种方式......

.Filter = "[ClientNumber]=" & Me.txtFilter.Value