清理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条件字符串中,它给了我一个语法错误。我相信这是因为它超出了字符串的第一个“。但我不确定