【发布时间】:2020-01-17 21:14:29
【问题描述】:
我有一个连接到 Access 数据库的 excel 文件,该数据库在打开 excel 文件时会刷新(Access 2010 和 Excel 2010)。它使用 SQL 查询来填充表。当它是这样的时候,查询曾经可以正常工作:
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 连接命令文本,现在我收到错误“查询未运行,或无法打开数据库表”,然后“以下数据范围未能刷新”。
我唯一能想到的可能是某些函数或关键字在 Access 中有效,但在 Excel 与 Access 数据库的连接中无效,但我在网上找不到任何相关信息。不知道还有什么会导致它失败。
【问题讨论】:
标签: sql ms-access excel-2010