我试图提示用户输入一个范围,并以子形式显示在该范围内的所有仪器。
问题:上、下区域是一个文本字段(因为某些范围不能用整数表示)。如截图所示,比较只比较该领域的第一个字符。
用户输入:5-3在子表单上:36 -4,它比较5和3,而不是36
我知道vba正在做被告知的事情,但是我如何才能达到我想要的结果呢?

下面是请求子表单的代码:
Dim Up As Integer
Dim Low As Integer
If Me.Text_L = "" Or IsNull(Me.Text_L) Or Me.Text_U = "" Or IsNull(Me.Text_U) Then
MsgBox ("Please choose a valid range!")
Else
Up = Me.Text_U
Low = Me.Text_L
SQL = SQL_Origin & " WHERE [qry_View_Search].[Upper_Range] <= '" & Up & "' " _
& "AND [qry_View_Search].[Lower_Range] >= '" & Low & "';"
subform_View_Search.Form.RecordSource = SQL
subform_View_Search.Form.Requery
End If发布于 2016-03-22 13:07:39
因此,我所做的就是在IIf(IsNumeric([Upper]), Val([Upper]), Null)查询中创建一个新列,以获得所有的数值结果。
然后在vba中,我将查询子表单,如下所示
SQL = SQL_Origin & " WHERE [qry_View_Search].[Upper] <= cint(Forms![frm_View_Search]![Text_U]) " _
& "AND [qry_View_Search].[Lower] >= cint(Forms![frm_View_Search]![Text_L]);"谢谢你!
发布于 2016-03-21 18:59:27
我成功地处理了那些只使用Val的案件:
Value: Val([FieldName])或者:
Value: Val(Nz([FieldName]))https://stackoverflow.com/questions/36136167
复制相似问题