从表单打开报表时出错

时间:2016-12-29 01:43:27

标签: forms report ms-access-2013

我有一个表单可以帮助我过滤掉我想要的报告记录。该按钮将打开报告点击。

Form

这是按钮中的代码:

Private Sub Open_OEE_Click()

DoCmd.OpenReport "OEE_Report", acViewReport, , , acWindowNormal

End Sub

我一直收到错误:

RunTime Error 3071

我也将查询放在记录来源下的报告中:

SELECT * FROM 3_OEE WHERE ((([3_OEE].RecordID)=Forms![3_OEE_Report]!cboRecordID) And (([3_OEE].Date_Recorded)=DateValue(Forms![3_OEE_Report]!Date_Recorded)) And (([3_OEE].MC_No)=Forms![3_OEE_Report]!cboMCNo) And (([3_OEE].Product)=Forms![3_OEE_Report]!cboProduct));

我想根据一个标准(文本框或组合框)进行搜索,而不是一次全部搜索。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

MS-Access确实倾向于使用方括号。通过修剪不必要的内容,使报告的记录源更容易阅读。您还需要以正确的格式获取日期标准 - Access始终在SQL查询中使用美国格式,并且需要在日期周围标记#

SELECT * FROM 3_OEE 
    WHERE [3_OEE].RecordID = Forms![3_OEE_Report]!cboRecordID 
    And [3_OEE].Date_Recorded = Format(Forms![3_OEE_Report]!Date_Recorded, "\#mm/dd/yyyy\#")
    And [3_OEE].MC_No = Forms![3_OEE_Report]!cboMCNo 
    And [3_OEE].Product = Forms![3_OEE_Report]!cboProduct;

我还建议为此创建一个命名查询,并将报告的记录源设置为命名查询。然后,您可以在不必运行报表的情况下单独测试查询(但请确保表单已打开并且已填充相关控件)。

答案 1 :(得分:0)

我向其他消息来源寻求帮助。 Answer to Question