Docmd.openreport Where子句语法

时间:2014-02-23 01:30:26

标签: sql vba ms-access-2010

我正在尝试将报告中的个别记录保存为PDF文件。使用Access 2010。我得到了它的工作,但我需要在开始日期和结束日期,我似乎无法弄清楚语法。以下是我到目前为止的情况:

DoCmd.OpenReport "Rpt Form Responses", acViewReport, , "[Facility Number]=" & temp & _ And [Service Date] Between & begindate And  enddate;

顶线工作正常但是当我添加第二个时我无法使其工作。我已经尝试了所有限定符'"#以及许多不同的语法变体而没有运气。

begindate和enddate是我从输入框中捕获的字符串。我应该将这些更改为约会吗?我已经在这里做了很多阅读,并根据建议我考虑在表单上放置一个开头和结尾的文本框,但我想我宁愿做输入框。

1 个答案:

答案 0 :(得分:5)

您确定上面发布的语法是否准确,因为它不正确。

  1. 我假设'temp'是数字,否则你需要用单引号括起来;
  2. 延续线缺少前导“后跟空格;
  3. 缺少引号,BETWEEN和AND周围的空格
  4. 只要您执行以下操作,就可以使用日期字符串:

    begindate = #1/1/2005#
    enddate = #1/1/2012#
    

    以下是我认为您的语法应该是这样的(我测试过并且有效):

    DoCmd.OpenReport "Rpt Form Responses", acViewReport, , "[Facility Number]=" & temp & _
        " And [Service Date] Between #" & begindate & "# And #" & enddate & "#"