即使新的 SQL 查询在 Access 中有效,更改 Excel 文件中的数据库 SQL 连接也会中断

Changing database SQL connection in Excel file breaks even though the new SQL query works in Access

我有一个 excel 文件,它连接到 Access 数据库,当 excel 文件打开时会刷新(Access 2010 和 Excel 2010)。它使用 SQL 查询来填充 table。查询过去工作正常时是这样的:

SELECT U.WkEnd, U.Error, COUNT(U.Error) AS [Count], M.NumOpen
FROM tbl_002_Updates AS u
INNER JOIN 
(SELECT Finish-Weekday(Finish,5)+7 AS WkEnd, COUNT(*) AS NumOpen FROM tbl_001_Master WHERE Status IN ('A', 'M') 
   GROUP BY Finish-Weekday(Finish,5)+7) AS M 
ON M.WkEnd = U.WkEnd
WHERE U.Error IS NOT NULL AND Year(U.WkEnd) = 2020
GROUP BY U.WkEnd, U.Error, M.NumOpen
ORDER BY U.WkEnd;

我将查询更新为以下内容:

SELECT T.WkEnd, T.Error, T.WkNum, m.NumOpen
FROM 
(
SELECT DISTINCT D.WkEnd As WkEnd, 'DED' As Error, NZ(P.WkNum, 0) As WkNum from tbl_002_Updates AS D LEFT JOIN 
   (SELECT WkEnd, Count(Error) As WkNum FROM tbl_002_Updates WHERE Error = 'DED' GROUP BY WkEnd) AS P 
   ON D.WkEnd = P.WkEnd 
UNION 
SELECT DISTINCT D.WkEnd As WkEnd, 'PCS' As Error, NZ(P.WkNum, 0) As WkNum from tbl_002_Updates AS D LEFT JOIN 
   (SELECT WkEnd, Count(Error) As WkNum FROM tbl_002_Updates WHERE Error = 'PCS' GROUP BY WkEnd) AS P 
   ON D.WkEnd = P.WkEnd 
UNION 
SELECT DISTINCT D.WkEnd As WkEnd, 'Planner' As Error, NZ(P.WkNum, 0) As WkNum from tbl_002_Updates AS D LEFT JOIN 
   (SELECT WkEnd, Count(Error) As WkNum FROM tbl_002_Updates WHERE Error = 'Planner' GROUP BY WkEnd) AS P 
   ON D.WkEnd = P.WkEnd
)  AS T 
INNER JOIN 
(SELECT Finish-Weekday(Finish,5)+7 AS WkEnd, COUNT(*) AS NumOpen FROM tbl_001_Master WHERE Status IN ('A', 'M')
   GROUP BY Finish-Weekday(Finish,5)+7)  AS M 
ON M.WkEnd = T.WkEnd
WHERE Year(T.WkEnd) = 2020
ORDER BY T.WkEnd;

新查询在 Access 中运行良好。我没有更改身份验证信息或其他任何内容,只更改了 Excel 连接命令文本,现在我收到错误 "The query did not run, or the database table could not be opened",然后是 "The following data range failed to refresh"。

我唯一能想到的是,某些函数或关键字可能在 Access 中有效,但在与 Access 数据库的 Excel 连接中无效,但我找不到任何相关信息在线的。不确定还有什么会导致它失败。

只是 nz() 函数破坏了它,如果用 iif(isnull()) 替换它就可以工作