2010-06-30 118 views
0

我想創建一個sql語句,但我需要使用VB變量。問題是,當我試圖將變量放入時,我總是收到有關參數太少的錯誤。爲了將VB變量添加到SQL語句中,我需要使用某種格式嗎?在SQL語句中使用VB變量

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

這種情況下的變量是'count'。

回答

1

串聯變量,像這樣:

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

尖叫不好的做法。 SQL注入任何人? – StingyJack 2010-06-30 16:22:23

+0

放鬆一下。 VB是鍵入的。如何在一個int中注入SQL? – renick 2010-06-30 16:25:55

+0

這可能是其他地方重複使用字符串的模式。 – StingyJack 2010-06-30 17:03:05

1

嗯......使用非參數化的SQL像你想通常是一個非常糟糕的主意。有many articles關於如何參數化SQL查詢或使用VB存儲過程(6和.NET)。

+0

真的沒有選擇。 – BioXhazard 2010-06-30 16:28:41

0

您需要連接它:

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