Текст "select * from tblpayroll where empid = userid"
будет отправлен через точно так же, как на серверную часть SQL, часть userid
не будет заменена. Таким образом, если у вас нет столбца userid
, вы, вероятно, получите ошибку. Даже если у вас есть столбец userid
, результаты не будут такими, как вы ожидаете.
То, что вам нужно сделать, зависит от того, является ли userid
числовым или строковым значением. Для чисел вы можете использовать:
"select * from tblpayroll where empid = " & CStr(userid)
Это сначала превратит числовое значение в строку и проверит его как есть.
Для строковых значений используйте:
"select * from tblpayroll where empid = '" & userid & "'"
Это просто окружит строку кавычками, чтобы обеспечить сравнение строк. Вы должны знать, что это плохая идея, если userid
не был как-то продезинфицирован - это может привести к атакам с использованием SQL-инъекций. Искусство исправления, выходящее за рамки этого конкретного вопроса, но о котором стоит помнить.
Что делать, если ваша переменная числовая, а поле базы данных является строкой, это другой вопрос. Вы можете сделать это с помощью CStr
и дополнения нулями, но, поскольку это маловероятный сценарий, я не задокументировал это здесь.