【问题标题】:Docmd.openreport Where Clause syntaxDocmd.openreport Where 子句语法
【发布时间】:2014-02-24 01:01:58
【问题描述】:

我正在尝试将报告中的单个记录保存为 PDF 文件。使用Access 2010。我得到了这个工作,但我需要输入一个开始日期和结束日期,我似乎无法弄清楚语法。这是我目前所拥有的:

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

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

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

【问题讨论】:

    标签: sql vba ms-access-2010


    【解决方案1】:

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

    1. 我假设 'temp' 是数字,否则您需要用单引号括起来;
    2. 续行缺少前导 " 后跟一个空格;
    3. BETWEEN 和 AND 周围缺少引号、空格

    只要您执行以下操作,您就可以摆脱日期的字符串:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2014-09-08
      • 2010-12-07
      • 2013-03-02
      相关资源
      最近更新 更多