Да, использование амперсанда - способ соединить строки.
Это может быть, что даты требуют апострофа, например:
strSQL="SELECT * FROM Project WHERE P_MONTH BETWEEN '" & pastMonth &"' AND '" & futureMonth & "'"
Но я настоятельно рекомендую вам изменить подход и использовать параметризованный запрос для выполнения этой операции.
Я использую подобный код в классической осине:
public function select_rst(sql, parameterArray)
dim cnx, cmd, i
Set cnx=CreateObject("ADODB.Connection")
cnx.Open wfDataConnection
Set cmd = CreateObject("ADODB.Command")
With cmd
.CommandText = sql
.CommandType = adCmdText
.ActiveConnection = cnx
if isArray(parameterArray) then
for each i in parameterArray
.Parameters.Append .CreateParameter(i(0), i(1), i(2), i(3), i(4))
next
end if
end with
Set select_rst = CreateObject("ADODB.Recordset")
With select_rst
.CursorLocation = adUseClient
.Open cmd
Set .ActiveConnection = Nothing
End With
Set cmd = Nothing
cnx.close
set cnx=nothing
end function
Назвать это так:
dim sql, parameterArray
sql = "SELECT * FROM Project WHERE P_MONTH BETWEEN ? AND ?"
parameterArray = Array(_
Array("@p1", adInteger, adParamInput, , pastMonth)_
, Array("@p2", adInteger, adParamInput, , futureMonth)_
)
set rst = select_rst(sql, parameterArray)
'....do stuff with rst...
set rst = nothing
Я не слишком уверен, что имена переменных (@ p1, p2 @, и т. д.) при создании параметров. Кажется, не имеет значения, что вы называете переменными, но для этого требуется какое-то имя.
Я ответил, но тогда я вижу, что вы сравниваете только месяц, а не подходящую дату. Сохраняется ли месяц в базе данных как целое число? –
Большой вопрос Martin, в данном конкретном экземпляре, который создает «виды» для сортировки конкретной информации, которая находится в форме выпадающего меню, так что пользователи могут выбирать строковые значения «новые», «удерживаемые», а также назначать запись для конкретный месяц. С помощью этого сочетания я думал, что наиболее подходящим способом будет использование строковых значений. Разве не было бы лучшего способа сделать это? – hexobolic
Я не уверен на 100%, но я думаю, что большинство типов данных могут быть объединены в sql, используя апострофы. Например, целое число может быть помещено в оператор sql следующим образом: '... '" & intValue & "' ...', то же, что и '... '" & strValue & "' ...' и '... '" & dateValue & "' ...'. –