在Access 2003 SQL中清理字符串:问题'

时间:2010-07-13 17:32:06

标签: sql vba sql-injection access-vba ms-access-2003

我正在编写一个查询,必须计算在课程中注册的学生人数,我这样做的方式是这样的:

DCount("[student/course table].[Student ID]","[student/course table]","[StartDate] = #" & [Course Start Date] & "# AND Location = '" & tblCourseDetails.Location & "' AND [Course Number] = '" & [Course Number] & "'")

问题是Location可能包含撇号,这会将错误引入我的结果中。这似乎搞砸了许多事情(比如它要求我输入两次参数)。是否有任何简单的方法来绕过撇号?我想也许使用Replace()= Replace()这可能是一个非常简单的解决方案,但是如果还有其他方法,我想知道。

我不太担心SQL注入。要使用此查询,您无论如何都可以访问数据库。

这不是我的全部查询,如果您认为我应该发布,请告诉我。

1 个答案:

答案 0 :(得分:3)

您需要添加转义字符。对于访问,我认为它是''为'。

所以找到并替换'with',你应该很高兴。

编辑:这是一个额外的撇号,而不是双引号。

Replace(tblCourseDetails.Location, "'", "''")