在SQL语句中使用VB变量

问题描述:

我想创建一个sql语句,但我需要使用VB变量。问题是,当我试图将变量放入时,我总是收到有关参数太少的错误。为了将VB变量添加到SQL语句中,我需要使用某种格式吗?在SQL语句中使用VB变量

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

这种情况下的变量是'count'。

串联变量,像这样:

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

嗯......使用非参数化的SQL像你想通常是一个非常糟糕的主意。有many articles关于如何参数化SQL查询或使用VB存储过程(6和.NET)。

+0

真的没有选择。 – BioXhazard 2010-06-30 16:28:41

您需要连接它:

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