我的格式日期功能在 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

更改 Wildfly(JBoss) 访问日志中的日期格式

DB2日期格式更改的方法

glassfish 3错误404

将SQL查询出的日期更改格式

Microsoft Access 2010 Web 数据库将日期转换为字符串

在MySQL数据库里面,怎么使用SQL语句查询功能把时间戳格式格式化为日期格式如:2013-02-28 6:00:00 ?