Ms Access Function MonthName 导致崩溃

Ms Access Function MonthName causes crash

在一个已经工作多年的查询中,我添加了 MonthName 函数,以便我最终可以在报告中按此值分组。我添加的部分是这样的:

MonthName([WorkDate],False) AS Expr1

将它添加到查询后,每次我 运行 它时,我都会得到正常显示的结果,但是一旦我滚动查看新添加的列,Access崩溃,没有给我任何错误消息并完全关闭!

SELECT 
    tbl_Customers.CustomerID, 
    tbl_Customers.CompanyName, 
    tbl_TimeSheet.WorkDate, 
    tbl_TimeSheet.TimeWorked, 
    tbl_Project.ProjectName AS Projekt, 
    tbl_TimeSheet.Description, 
    tbl_TimeSheet.Billable, 
    MonthName([WorkDate],False) AS Expr1
FROM 
    tbl_Customers INNER JOIN 
    (tbl_Project RIGHT JOIN tbl_TimeSheet ON tbl_Project.ConsProjectID = tbl_TimeSheet.ConsProjectID) 
    ON tbl_Customers.CustomerID = tbl_TimeSheet.CustomerID
ORDER BY 
tbl_TimeSheet.WorkDate;

有人遇到过这种情况吗?我是否以某种方式错误地使用了该功能,或者这是 Access 中的错误?解决方法是什么?

函数 MonthName 有两个参数,Month As LongAbbreviate As Boolean。因此,当您将完整日期传递给它时,它是错误的数据类型。相反,您应该将它与 Month 函数结合使用:

SELECT 
    tbl_Customers.CustomerID, 
    tbl_Customers.CompanyName, 
    tbl_TimeSheet.WorkDate, 
    tbl_TimeSheet.TimeWorked, 
    tbl_Project.ProjectName AS Projekt, 
    tbl_TimeSheet.Description, 
    tbl_TimeSheet.Billable, 
    MonthName(Month([WorkDate]),False) AS Expr1
FROM 
    tbl_Customers INNER JOIN 
    (tbl_Project RIGHT JOIN tbl_TimeSheet ON tbl_Project.ConsProjectID = tbl_TimeSheet.ConsProjectID) 
ON tbl_Customers.CustomerID = tbl_TimeSheet.CustomerID
ORDER BY 
tbl_TimeSheet.WorkDate;

此致,