首页 > 解决方案 > 在选择查询中使用函数将结果存储在 Excel 工作表中

问题描述

我已经使用 Excel 和 MS Access 多年,但直到现在我才遇到这个问题:我有一个 SELECT 语句,其中一个字段是别名,它使用用户定义的函数来计算字段值的上限。问题是因为它是一个表达式,ADO 连接将不允许 Excel 访问 Access 中的对象。当我将 ADO 连接编写为子模块时,通过连接字符串执行 SELECT 语句,函数在 VBA 项目中是不可识别的 - 理所当然,它在 MS Access 中。这是 SELECT 语句:

SELECT Left([Description],50) AS Comment, 
   Ceiling(Avg([Task_Total])) AS Task, 
   TblTaskTotal.Dtd 
FROM TblTaskTotal 
GROUP BY Left([Description],50), TblTaskTotal.Dtd HAVING (((TblTaskTotal.Dtd)=Date())) 
ORDER BY Left([Description],50); 

在 Excel VBA 项目中,导致运行时错误(“表达式中的未定义函数 'Ceiling'”。关于如何绕过这个 Gremlin 的任何建议?

标签: excelfunctionms-accessadouser-defined

解决方案


您可以使用通用的汇总方法替换缺少的天花板:

-Int(-Avg([Task_Total])) AS Task

推荐阅读