2010-06-30 5 views
0

Я пытаюсь создать оператор sql, но мне нужна переменная VB. Проблема в том, что я продолжаю получать ошибку о слишком малых параметрах, когда я пытаюсь просто включить переменную. Есть ли какой-то формат, который мне нужно использовать, чтобы добавить переменную VB в инструкцию SQL?Использовать переменную VB в операторе SQL

Set rs = CurrentDb.OpenRecordset("SELECT StartTime " & _ 
      "FROM tblLunchTime " & _ 
      "WHERE TimeID = (SELECT max(TimeID-count) FROM tblLunchTime);") 

Переменная в этой ситуации - «счет».

ответ

1

конкатенация переменного следующим образом:

Set rs = CurrentDb.OpenRecordset("SELECT StartTime " & _ 
      "FROM tblLunchTime " & _ 
      "WHERE TimeID = (SELECT max(TimeID-" & count & ") FROM tblLunchTime);") 
+1

криков плохая практика. SQL-инъекция кто-нибудь ??? – StingyJack

+0

Расслабьтесь немного. Набирается VB. Как именно вы будете вводить SQL в int? – renick

+0

Это, вероятно, образец, который повторяется в другом месте, со строками. – StingyJack

1

Ну ... с помощью непараметризированного SQL, как вы хотите, как правило, очень плохая идея. Есть many articles о том, как параметризовать sql-запрос или использовать хранимые procs для VB (6 и .NET).

+0

У вас действительно нет выбора. – BioXhazard

0

Вам нужно сцепить его:

Set rs = CurrentDb.OpenRecordset("SELECT StartTime " & _ 
      "FROM tblLunchTime " & _ 
      "WHERE TimeID = (SELECT max(TimeID-" & count & ") FROM tblLunchTime);") 
Смежные вопросы