日期/时间数据类型ms以适当的年度顺序访问2010月份名称

时间:2014-11-21 04:50:17

标签: vba datetime ms-access-2010 datetime-format datetimeformatinfo

我一直在阅读有关如何以适当的年度顺序获取月份名称的所有建议。每条信息似乎都集中在略有不同的东西上,我仍然有点困惑 - 我应该在我的表单中应用MonthName vba函数吗?或者做其他事情......?另一个线程甚至建议创建另一个表,为每个月的名称提供整数值 - 但对我而言,这似乎是一个不优雅的解决方案(没有违法行为)。

我正在使用MS Access 2010,我希望我的表单中的月份名称以适当的年度顺序显示(从1月到12月)。代码是什么,最适合放在哪里?

表单的记录源是SQL查询,它是:

SELECT Format([DateOfEnquiry],"mmmm") AS [Month], Count(T_Enquiry.DateOfEnquiry)
AS TotalMonthlyEnquiries
FROM T_Enquiry
GROUP BY Format([DateOfEnquiry],"mmmm"), [Enter full name of month]
HAVING ((([Enter full name of month]) Is Null)) OR (((Format([DateOfEnquiry],"mmmm"))=
Enter full name of month]) AND (([Enter full name of month]) Is Not Null));

但是表单按字母顺序显示月份名称,而不是按照正确的年度顺序。 T_Enquiry表中DateOfEnquiry字段的数据类型设置为Date / Time。我已经阅读了其他Stack Overflow线程,这些线程建议附加到表单的VBA代码“覆盖”查询语句。所以,我的问题变成了 - 在哪里是插入适当的vba代码的最佳位置,以及从1月到12月对月份名称进行排序/排序的正确代码是什么?

1 个答案:

答案 0 :(得分:0)

我找到了一个我测试过的解决方案,它似乎在我的数据库中运行良好。我在查询中创建了一个新字段 - 'Format([DateOfEnquiry],“mm”)' - 并使用此字段进行排序。