Я готовлю функцию в VBA для создания запроса для поиска в базе данных.Один из параметров, «Значение», может быть строкой (например, «ON») или числом (например, 123), если это строка, я должен выбрать значения, отличные от нее (например, «OFF»), иесли это число, я должен выбрать значения, которые больше его (например, 234).
Я подготовил обобщенную ниже функцию, передав значение для сравнения «valueParam» как Вариант, затем пытаясь определить,«valueParam» - это строка или целое число.Проблема заключается в том, что функция VarType обрабатывает каждый раз «valueParam» как строку.
Function prepareQuery(ByVal valueParam As Variant) as String
Dim STR_Query as String
STR_Query = "Select * FROM tablename"
If VarType(valueParam) = vbInteger Then
STR_Query = STR_Query & " WHERE Value>" & valueParam
ElseIf VarType(valueParam) = vbString Then
STR_Query = STR_Query & " WHERE Value<>'" & valueParam & "'"
End If
prepareQuery = STR_Query
End Function
Кто-нибудь имеет представление о том, почему VarType не распознает целое число, или имеет другое представление о различении чисел и строк?1006 *
Большое спасибо