在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);")
答
嗯......使用非参数化的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);")
尖叫不好的做法。 SQL注入任何人? – StingyJack 2010-06-30 16:22:23
放松一下。 VB是键入的。如何在一个int中注入SQL? – renick 2010-06-30 16:25:55
这可能是其他地方重复使用字符串的模式。 – StingyJack 2010-06-30 17:03:05