2015-09-24 62 views
1

我一直试图得到一个查询,我在Access中运行以在VBA中运行,但由于我一直使用的感叹号数量不断收到错误。我现在用的语句是访问中的SQL语句

SQLstat = "SELECT tbl_Date_Check.DateofChecklist, tbl_Tasks.QuestionNumber,tbl_Tasks.Frequency, tbl_Tasks.Questions " _ 
& "FROM tbl_Tasks, tbl_Date_Check " _ 
& "WHERE (((tbl_Date_Check.DateofChecklist)=""" & [Forms]![Daily_Checker]![TxtDate] & """) And ((tbl_Tasks.Frequency) = """ & [Forms]![Daily_Checker]![ComFreq]"""))" 

任何帮助将是巨大的感谢

+1

什么错误这是否给你? –

回答

0

这可能是由以下SO问题进行解释:What is the difference between single and double quotes in SQL?

这说明你需要利用单引号''到几乎在每种情况下都在SQL中环绕文本。您使用双引号""的事实可能是导致错误的原因。

我希望这会有所帮助。

-C§

+1

您引用的问题不适用于Microsoft Access SQL。这个问题的答案更多的是指Microsoft SQL Server(TSQL)。对于Microsoft Access,可以使用单引号或双引号来分隔字符串,而不会有任何问题。他的错误在于他在陈述结尾缺少一个连接符号,正如@HansUp在他对OP的评论中指出的那样。如果他确实正在比较两个日期字段('DateofChecklist'和'TxtDate'),那么他可能也需要使用@Gustav指出的'#'日期分隔符,但是这并不确定是基于帖子。 –

0

它必须这样写的日期:

SQLstat = "SELECT tbl_Date_Check.DateofChecklist, tbl_Tasks.QuestionNumber,tbl_Tasks.Frequency, tbl_Tasks.Questions " _ 
& "FROM tbl_Tasks, tbl_Date_Check " _ 
& "WHERE ((tbl_Date_Check.DateofChecklist = #" & Format([Forms]![Daily_Checker]![TxtDate], "yyyy\/mm\/dd") & "#) And (tbl_Tasks.Frequency = " & [Forms]![Daily_Checker]![ComFreq] & "))"