Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access 2007错误3071-使用参数报告_Sql_Ms Access - Fatal编程技术网

Sql Access 2007错误3071-使用参数报告

Sql Access 2007错误3071-使用参数报告,sql,ms-access,Sql,Ms Access,我在MS Access 2007中有一个查询,它从两个不同的表中提取数据并显示在报告中。这发生在用户单击主窗体上的按钮之后,该按钮打开一个日期字段参数窗体,用户可以在其中选择两个日期。从那里,查询使用用户提供的两个日期运行,或者如果没有选择任何日期来填充日期,则这些日期是“伪造的”。我得到一个运行时错误3071,这个表达式输入错误,或者它太复杂而无法计算,我不知道为什么 我在另一个数据库中运行了一个类似的查询,它执行得非常完美,所以我不知所措 查询如下: (SELECT [Group Name

我在MS Access 2007中有一个查询,它从两个不同的表中提取数据并显示在报告中。这发生在用户单击主窗体上的按钮之后,该按钮打开一个日期字段参数窗体,用户可以在其中选择两个日期。从那里,查询使用用户提供的两个日期运行,或者如果没有选择任何日期来填充日期,则这些日期是“伪造的”。我得到一个运行时错误3071,这个表达式输入错误,或者它太复杂而无法计算,我不知道为什么

我在另一个数据库中运行了一个类似的查询,它执行得非常完美,所以我不知所措

查询如下:

(SELECT 
[Group Name], 
tbGroups AS [Group Number],
Analyst, 
[Account Manager], 
NULL AS [SER Number], 
[Received Date] AS [Corporate Recevied],
DateValue(Created) AS [Sales Submitted], 
tbBAAcceptedDate AS [BA Accepted], 
NULL AS [Submitted to MDSS], 
NULL AS [Completed],
NULL AS [Cancelled],
DateDiff("d",[Received Date], IIf([Forms]![frmReportDateFilter].[tbToDate] = '01/01/2116', Date(), CDate([Forms]![frmReportDateFilter].[tbToDate]))) AS [Aging Days Count],
LocalID AS [ID Number]
FROM ChangeRequest
WHERE DateValue([Created]) BETWEEN CDate([Forms]![frmReportDateFilter].[tbFromDate]) AND CDate([Forms]![frmReportDateFilter].[tbToDate]))
UNION ALL (SELECT 
tbGroupProgramProductName AS [Group Name], 
tbGroups AS [Group Number], 
cboAnalyst AS Analyst, 
tbAccountManager AS [Account Manager], 
tbSERNumber AS [SER Number], 
tbCorpReceivedDate AS [Corporate Recevied],
tbBAReceivedDate AS [Sales Submitted],
IIf([tbBAAcceptedDate] > CDate([Forms]![frmReportDateFilter].[tbToDate]), NULL, [tbBAAcceptedDate]) AS [BA Accepted],
IIf([tbSubmittedToMDSS] > CDate([Forms]![frmReportDateFilter].[tbToDate]), NULL, [tbSubmittedToMDSS]) AS [Submitted to MDSS],
DateValue(tbCompleteDate) AS [Completed],
DateValue(tbCancelDate) AS [Cancelled],
DateDiff("d",tbCorpReceivedDate, IIf([Forms]![frmReportDateFilter].[tbToDate] = '01/01/2116', Date(), CDate([Forms]![frmReportDateFilter].[tbToDate]))) AS [Aging Days Count],
LocalID AS [ID Number]
FROM tblDD
WHERE DateValue([tbBAReceivedDate]) BETWEEN CDate([Forms]![frmReportDateFilter].[tbFromDate]) AND CDate([Forms]![frmReportDateFilter].[tbToDate]))
ORDER BY [Group Name];

非常感谢您的帮助。

请将控件指定为日期。类似这样的东西,没有CDate,也没有外括号:

PARAMETERS 
[Forms]![frmReportDateFilter].[tbFromDate] Date,
[Forms]![frmReportDateFilter].[tbToDate] Date;
SELECT 
[Group Name], 
tbGroups AS [Group Number],
Analyst, 
[Account Manager], 
NULL AS [SER Number], 
[Received Date] AS [Corporate Recevied],
DateValue(Created) AS [Sales Submitted], 
tbBAAcceptedDate AS [BA Accepted], 
NULL AS [Submitted to MDSS], 
NULL AS [Completed],
NULL AS [Cancelled],
DateDiff("d",[Received Date], IIf([Forms]![frmReportDateFilter].[tbToDate] = #01/01/2116#, Date(), [Forms]![frmReportDateFilter].[tbToDate])) AS [Aging Days Count],
LocalID AS [ID Number]
FROM ChangeRequest
WHERE DateValue([Created]) BETWEEN [Forms]![frmReportDateFilter].[tbFromDate] AND [Forms]![frmReportDateFilter].[tbToDate]
UNION ALL 
SELECT 
tbGroupProgramProductName AS [Group Name], 
tbGroups AS [Group Number], 
cboAnalyst AS Analyst, 
tbAccountManager AS [Account Manager], 
tbSERNumber AS [SER Number], 
tbCorpReceivedDate AS [Corporate Recevied],
tbBAReceivedDate AS [Sales Submitted],
IIf([tbBAAcceptedDate] > [Forms]![frmReportDateFilter].[tbToDate], NULL, [tbBAAcceptedDate]) AS [BA Accepted],
IIf([tbSubmittedToMDSS] > [Forms]![frmReportDateFilter].[tbToDate], NULL, [tbSubmittedToMDSS]) AS [Submitted to MDSS],
DateValue(tbCompleteDate) AS [Completed],
DateValue(tbCancelDate) AS [Cancelled],
DateDiff("d",tbCorpReceivedDate, IIf([Forms]![frmReportDateFilter].[tbToDate] = #01/01/2116#, Date(), [Forms]![frmReportDateFilter].[tbToDate])) AS [Aging Days Count],
LocalID AS [ID Number]
FROM tblDD
WHERE DateValue([tbBAReceivedDate]) BETWEEN [Forms]![frmReportDateFilter].[tbFromDate] AND [Forms]![frmReportDateFilter].[tbToDate]
ORDER BY [Group Name];

如果删除每个
SELECT
片段周围的括号,会发生什么情况?换句话说,
选择。。。从…起联合所有选择。。。从…
而不是从
(选择…从…)UNION ALL(选择…从…
@Hans-我也想到了这一点,当我删除它们时,我会得到相同的错误,如果内存对我来说是正确的,这会导致我之前提到的查询中的另一个错误,并且正在正确执行。我认为我在代码中遗漏了或忽略了一些东西,因为我无法摆脱这个运行时错误。在查询设计器中单独测试查询时,是否也会遇到同样的错误?如果是这样的话,您可以分别对每个
SELECT
piecle进行测试,它们是否都能正常运行?分别对这两个SELECT进行测试会让我发现,我的顶部SELECT功能正常,而底部SELECT功能正常。当我只运行查询的下半部分时,出现了相同的错误。我没有在设计器中构建SQL。很好!现在确定该查询的哪个部分导致错误。例如,如果
选择*
,是否仍会出现错误?首先,感谢您的回复!我尝试过这个,但不幸的是,它给出了相同的错误。在打开报告之前,我运行代码询问用户是否要导出到Excel,如果他们选择“否”,则会在Access中打开报告。