我一直在寻找人们如何编写代码,并且想知道在日期字段上放置格式是否有所不同。例如,我在查询中看到了此Format(EndDate, "mm/dd/yyyy")
,但EndDate被定义为表中的“日期”字段。
这样做可能带来哪些好处和问题?
strEDate = "#" & Format(EndDate, "mm/dd/yyyy") & "#"
strHSurg = "SELECT TOP 1 [Health Surcharge]FROM tblTax WHERE [Effective Date] <= " & EDate & " ORDER BY [Effective Date] DESC;"
我喜欢使用VBA格式化日期,因为您永远不知道字段的格式是什么。如果要写入的字段上有特定的日期格式,则该字段格式将覆盖VBA分配的格式。就像在字段中输入一样。您可以输入任何格式的数据,字段格式会将数据合并为指定格式。
为了安全起见,请在VBA中使用与该字段相同的格式。
格式采用Date
变量/字段并将其转换为String
。两者之间的差异远不止是视觉效果。您不能在String上执行日期类型的函数(例如DateAdd
)或在Replace
上执行字符串函数(例如Date
)。
我通常在将日期添加到字符串时使用Format函数。可以是用户将看到的字符串(例如,在报告标题中,您可以具有不同的输出,例如“ 2020年1月1日的总销售额”或“ 2020年1月1日的总销售额”)或生成SQL查询字符串时以确保Access期望的预期日期格式并避免本地化问题。
在每种情况下,数据都保留为Date
数据类型。我从不将日期数据存储为String
。