将now()转换为MS Access VBA中的特定格式

时间:2013-11-21 19:22:43

标签: vba ms-access

如何将now()转换为“2013年11月21日”?我已经研究过像datepart和format这样的东西,但我找不到这个翻译。

2 个答案:

答案 0 :(得分:1)

这应该有效。我在VBA立即窗口中运行了它。

?Format(Now(),"mmmm dd, yyyy")
November 21, 2013

答案 1 :(得分:1)

这是你在尝试的吗?

Sub Sample()
    Debug.Print ConvertTodate(#12/13/2012#)
    Debug.Print ConvertTodate(#12/12/2012#)
    Debug.Print ConvertTodate(#12/14/2012#)
    Debug.Print ConvertTodate(#12/23/2012#)
    Debug.Print ConvertTodate(Now)
End Sub

Function ConvertTodate(d As Date) As String
    Dim suff As String
    Dim dt As String

    dt = Format(d, "mmmm dd, yyyy")

    Select Case Day(d)
        Case 0 To 10, 20 To 31
            Select Case Right(Day(d), 1)
                Case 1: suff = "st,"
                Case 2: suff = "nd,"
                Case 3: suff = "rd,"
                Case 0, 4 To 9: suff = "th,"
            End Select
        Case 11 To 20: suff = "th,"
    End Select

    ConvertTodate = Replace(dt, Day(d) & ",", Day(d) & suff)
End Function

enter image description here

注意:根据您的区域设置,您可能需要使用其他内容而不是逗号。