【问题标题】:Changing database SQL connection in Excel file breaks even though the new SQL query works in Access即使新的 SQL 查询在 Access 中工作,在 Excel 文件中更改数据库 SQL 连接也会中断
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多