我在 MS Access 中编写了一个使用 MonthName 函数的 SQL 查询。在 Access 中它工作完美。我将精确的 SQL 语句复制到我经常用来查询数据库的 Excel 模块中。当我运行查询时,Excel 不断告诉我 MonthName 是一个未定义的函数名称。如果我删除 MonthName 部分,查询将正常运行。
我似乎缺少引用资料或其他内容...现在,我正在引用 Microsoft ActiveX 数据对象库 6.0。有人能指出我正确的方向吗?谢谢
strSQL = "SELECT DISTINCT Customers.CustomerName, Employees.EmployeeName, [Policy data revised].EXDT, MonthName(Month([EXDT])) AS expMonth
FROM (([Service Team table]
INNER JOIN Customers
ON [Service Team table].CustID = Customers.CustID)
INNER JOIN Employees
ON [Service Team table].EmployeeID = Employees.EmployeeID)
INNER JOIN [Policy data revised]
ON Customers.CustID = [Policy data revised].CustID
WHERE ((([Service Team table].RoleExtension)='2. Underwriting Assistant')
AND (([Policy data revised].EXDT)
BETWEEN #" & minExpDt & "# AND #" & maxExpDt & "#))
ORDER BY [Policy data revised].EXDT ASC;"
最佳答案
MonthName()
函数仅适用于在 Access 应用程序 session 中运行的查询。请参阅 About Microsoft Jet Expression Service sandbox mode 处的“从属性表调用或在 SQL 语句中使用时,以下 VBA 函数将不起作用”项目符号点。 。在 Access 应用程序 session 中,数据库引擎可以使用表达式服务来使用该沙盒函数。
由于您无法使用 MonthName
,请尝试使用此 Format
表达式。
Format([EXDT], 'mmmm') AS expMonth
关于Excel 中的 SQL 查询给出 "undefined function name"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719649/