将日期格式放在日期字段上是否会对vba有所不同?

问题描述 投票:0回答:2

我一直在寻找人们如何编写代码,并且想知道在日期字段上放置格式是否有所不同。例如,我在查询中看到了此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;"
ms-access access-vba
2个回答
0
投票

我喜欢使用VBA格式化日期,因为您永远不知道字段的格式是什么。如果要写入的字段上有特定的日期格式,则该字段格式将覆盖VBA分配的格式。就像在字段中输入一样。您可以输入任何格式的数据,字段格式会将数据合并为指定格式。

为了安全起见,请在VBA中使用与该字段相同的格式。


0
投票

格式采用Date变量/字段并将其转换为String。两者之间的差异远不止是视觉效果。您不能在String上执行日期类型的函数(例如DateAdd)或在Replace上执行字符串函数(例如Date)。

我通常在将日期添加到字符串时使用Format函数。可以是用户将看到的字符串(例如,在报告标题中,您可以具有不同的输出,例如“ 2020年1月1日的总销售额”或“ 2020年1月1日的总销售额”)或生成SQL查询字符串时以确保Access期望的预期日期格式并避免本地化问题。

在每种情况下,数据都保留为Date数据类型。我从不将日期数据存储为String

© www.soinside.com 2019 - 2024. All rights reserved.