Ms access 错误3464条件表达式中的数据类型不匹配

Ms access 错误3464条件表达式中的数据类型不匹配,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我在ms access 2010中有一个连续表单,它由一个文本框过滤,用户在其中输入一个数字。基础数据表中的筛选字段的数据类型为number,它在表设计视图中也读取长整数。我假设textbox传递一个字符串,因此在设置过滤器参数代码之前,textbox的after update方法将textbox.Value转换为数字格式。问题是,我每次尝试强制转换filterval变量都会导致不同的错误。将filterval强制转换为Long将导致第行条件表达式中出现错误3464数据类型不匹配: .F

我在ms access 2010中有一个连续表单,它由一个文本框过滤,用户在其中输入一个数字。基础数据表中的筛选字段的数据类型为number,它在表设计视图中也读取长整数。我假设textbox传递一个字符串,因此在设置过滤器参数代码之前,textbox的after update方法将textbox.Value转换为数字格式。问题是,我每次尝试强制转换filterval变量都会导致不同的错误。将filterval强制转换为Long将导致第行条件表达式中出现错误3464数据类型不匹配:

    .Filter = "[ClientNumber]='" & filterval & "'"
考虑到数据表中的ClientNumber字段是长整数,如何更改代码,以便after update方法可以过滤表单而不会出错?以下是我当前的txtFilter文本框更新后方法代码:

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

由于
[ClientNumber]
是长整数,因此在构建
.Filter
字符串时,不要用引号括住filterval

.Filter=“[ClientNumber]=”&filterval
实际上,您不应该需要filterval变量。这样试试吧

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

我想测试您的代码更改并给出反馈,但是表单在表单视图中是不可见的,即使它在设计视图中是可见的。单击导航子窗体中其他选项卡选择的其他窗体的选项卡时,这些窗体可见。单击其选项卡时,只有此表单不可见。这只是几分钟前发生的,关闭所有其他对象或关闭并重新打开access不会改变这一点。你有什么建议吗?没有,我不明白它为什么消失了。谢谢你回复我。我不在可以将空白数据库模板上载到文件共享站点的位置,因此我必须等到以后才能继续,除非其他人可以告诉我如何从我能够键入的信息中使其可见。再次感谢你。