我在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
答案 0 :(得分:2)
由于[ClientNumber]
是Long Integer,因此在构建.Filter
字符串时不要用引号将 filterval 括起来。
.Filter = "[ClientNumber]=" & filterval
实际上,您不应该需要 filterval 变量。试试这种方式......
.Filter = "[ClientNumber]=" & Me.txtFilter.Value