Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清理Access 2003 SQL中的字符串:';_Sql_Vba_Ms Access_Sql Injection_Ms Access 2003 - Fatal编程技术网

清理Access 2003 SQL中的字符串:';

清理Access 2003 SQL中的字符串:';,sql,vba,ms-access,sql-injection,ms-access-2003,Sql,Vba,Ms Access,Sql Injection,Ms Access 2003,我正在写一个查询,它必须计算一门课程的注册学生人数,我这样做的方式如下: DCount("[student/course table].[Student ID]","[student/course table]","[StartDate] = #" & [Course Start Date] & "# AND Location = '" & tblCourseDetails.Location & "' AND [Course Number] = '" &

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

DCount("[student/course table].[Student ID]","[student/course table]","[StartDate] = #" & [Course Start Date] & "# AND Location = '" & tblCourseDetails.Location & "' AND [Course Number] = '" & [Course Number] & "'")
问题是位置可能包含撇号,这会给我的结果带来错误。这似乎把很多事情搞砸了(比如它要求我输入两次参数)。有什么简单的方法可以绕过撇号吗?我在想也许使用Replace()=Replace(),这将是一个非常简单的解决方案,但如果有其他方法,我想知道

我不太担心SQL注入。要使用此查询,您几乎可以访问数据库


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

您需要添加转义字符。对于访问,我相信它是“For”

因此,找到并替换为“”,您应该可以开始了

编辑:那是一个额外的撇号,不是双引号

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

确切的代码是什么?当我尝试&Replace([Location],“,”,“,”)像Replace([tblCourseDetails],[Location],“,”)&或&Replace([Location],“,”)=Replace([tblCourseDetails]。[Location],“,”,“,”)&我的查询无法正常工作(它只会给出0作为计数)。只有一个Replace:
Location=”,&Replace(tblCourseDetails.Location),“,”,“,“,”,“)&”'而且
很好,现在可以了。在我发布最后一条评论后,我马上意识到第一条评论不应该超出范围。然后,我进行了一场白费力气的追逐,试图将Location='”&Replace(Location…)转换为Replace(Location),“'”,“''”='”&Replace(Location…),但我明白为什么现在不需要了。为便于将来参考,是否有任何方法可以使替换(位置“,”位置“=”,”位置“,”位置“,”位置“,”位置“,”位置“,”位置“&…正常工作?即:在DCount条件内进行替换string@Jeff很抱歉,我被你的最后一个问题弄糊涂了。这没什么重要的,但每当我运行Repalce(位置,“,”)在DCount条件字符串中,它给了我一个语法错误。我相信这是因为它超出了字符串的第一个“。但我不确定