我的格式日期功能在 Microsoft Access 中不起作用
Posted
技术标签:
【中文标题】我的格式日期功能在 Microsoft Access 中不起作用【英文标题】:My Format Date Function Doesn't Work In Microsoft Access 【发布时间】:2021-03-10 23:42:24 【问题描述】:我正在编写一个简单的代码,根据退出事件将第一个文本框的默认格式(MM/DD/YYYY)的日期值转换为第二个文本框的不同格式(DD/MM/YYYY)
由于某种原因,它总是返回日期格式 MM/DD/YYYY。
'First Code to convert it into a string
Private Sub date1_Exit(Cancel As Integer)
Dim dat_ed As Date
dat_ed = CDate(Me.date1.Value)
dat_ed = Format(CStr(dat_ed), "d/m/yyyy")
Me.date2.Value = dat_ed
End Sub
'Second Attempt to convert it directly
Dim dat_ed As Date
dat_ed = CDate(Me.date1.Value)
dat_ed = Format(dat_ed, "d/m/yyyy")
Me.date2.Value = dat_ed
【问题讨论】:
您不能格式化看起来像日期的字符串。它必须是一个实际的日期。所以删除Cstr
【参考方案1】:
您的代码在几个地方有错误,主要是因为您混淆了日期和格式化为日期的字符串。
Dim dat_ed As String 'You want this to hold a formatted date, so it's a string not a date
'dat_ed = CDate(Me.date1.Value) 'We can't do this because a string can't hold a date
'So we combine the next two calls
dat_ed = Format(CDate(Me.date1.Value), "d/m/yyyy")
'No CString in format, we need it to get the date as a date
'Note that / in format means the system date separator, if you want literal slashes, use \/ instead
Me.date2.Value = dat_ed
另外请注意,如果您的文本框的 Format 属性设置为特定的日期格式,您需要修改该属性,而不是为其分配格式化的日期。
【讨论】:
哇。非常感谢你!我真的是这方面的初学者。【参考方案2】:你把它弄得太复杂了。
首先,如果您已将日期/时间格式应用于文本框的 Format 属性,Access 就知道这是一个日期时间值。
第二,日期/时间值不带格式。这是一个值。
第三,要以特定格式显示日期值,请将此格式应用于文本框的 Format 属性。
因此,将格式 d/m/yyyy
(或 d\/m\/yyyy
)应用于文本框 date2。那么:
Private Sub date1_Exit(Cancel As Integer)
Me!date2.Value = Me!date1.Value
End Sub
【讨论】:
以上是关于我的格式日期功能在 Microsoft Access 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Access 2010 Web 数据库将日期转换为字符串
在MySQL数据库里面,怎么使用SQL语句查询功能把时间戳格式格式化为日期格式如:2013-02-28 6:00:00 ?