Excel 中的 SQL 查询给出 "undefined function name"错误

标签 sql excel vba ms-access

我在 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/

相关文章:

Excel 2013 : Count the occurrence of numbers/strings in a cell

VBA 将单元格从工作表复制到新的工作表并出现错误 1004

vba - 如果 vba 找不到文件,如何跳到列表中的下一个

SQL SELECT 每月的第一天和最后一天。

sql - 如何运行此查询?

sql - 如何运行从 Google App Engine 提取数据库时收到的 .sql3 文件?

vba - 无法在 Excel 中运行使用加载项创建的宏

mysql - SQL列作为选择

vba - 在outlook邮件正文中嵌入图片excel vba

excel - 如何将行传递给 Excel (Visual Basic for Applications) 自定义函数?