【发布时间】:2018-08-09 14:56:25
【问题描述】:
Microsoft Access 子表单过滤器输出如下所示:
**([qryPOExamDetail subform].[Line Description]="1"" CONDUIT - EMT")**
字段中的实际值为1" CONDUIT - EMT。我已将上述参数转换为[Line Description]='1"" CONDUIT - EMT',但动态查询返回零记录。
我已经构建了一个 SQL 语句来创建一个动态查询,以便通过 VBA doCmd.TransferText 函数导出到一个逗号分隔的文件。我过滤其他字段(没有“英寸”标记)并且效果很好。我已经在互联网上搜索了答案,但找不到任何东西。
如何让 SQL 识别 1"" CONDUIT - EMT = 1" CONDUIT - EMT?
以下是用于创建动态查询的 SQL 字符串:
strSQL1 = "SELECT tblOpenCommittment.[Job Number], tblOpenCommittment.[Job Name], tblOpenCommittment.[Order Number], tblOpenCommittment.[Supplier Name]," _
& "tblOpenCommittment.[Order Date],tblOpenCommittment.[Cost Code], tblOpenCommittment.[Line Description], tblOpenCommittment.Qty, tblOpenCommittment.Tax, " _
& "tblOpenCommittment.Price, tblOpenCommittment.Unit, tblOpenCommittment.[Total Line Value],tblOpenCommittment.[Total Line Value]-tblOpenCommittment.[Line Total Amount invoiced]" _
& "AS [Open]FROM tblOpenCommittment WHERE (((tblOpenCommittment.[Job Name])=[Forms]![frmPrintByProject]![txtBoxJobName]) AND ((tblOpenCommittment.[Cost Code])" _
& "Like" & Chr(34) & Chr(42) & Chr(34) & Chr(32) & Chr(38) & Chr(32) & "[Forms]![frmPrintByProject]![txtBoxFrameValue]) AND " & strWashedstrFilter & " )"
最后一个参数 strWashedstrFilter 表示我原始帖子开头列出的子表单过滤器的输出。正如我之前所说,只要过滤的值不包含 ( " ),它就可以工作。
我已经阅读该网站多年并获得了出色的帮助。这是我第一次发布问题。提前感谢大家抽出宝贵时间发表评论。
【问题讨论】:
-
从您的问题中并不太清楚您显示的文本在您的整个过程中的确切位置,因此更多的上下文将是有用的,也许连同生成的 SQL 示例一起。跨度>
-
如果我正确理解您的问题,我建议使用参数化查询。 See here
-
那些更好地称为嵌入引号,您可能可以使用该搜索短语在此处找到现有问题。
-
SQL 为我工作,将参数作为查询对象中的文字字符串。如果您在 VBA 中构建 SQL 语句,请编辑问题以提供您的代码。
-
过滤字符串如何得到双引号?