首页 > 解决方案 > 如何将 VBA 中的日期格式更改为 dd mm yy?

问题描述

所以,我有一个表格,主要想法是显示两个日期之间完成的案例。用户可以从 datepicker 中选择两个日期。格式是 EU,01/03/2019,问题是在 VBA 中格式是 US,所以它返回错误的值。

我尝试了很多 Format(date, dd.... 等等,但到目前为止没有成功。还尝试了很多来自网络和我的 VBA 书的解决方案。但是我缺少一些东西。现在我被卡住了,不知道如何继续。=)

Private Sub btnCalculate_Click()

    On Error GoTo myErr

    Dim strsql As String
    Dim rs As dao.Recordset
    Dim x, i As Integer

    Me.btnCalculate.Enabled = False

    strsql = "SELECT Activity.DateDone, Activity.Job1 AS a0, Activity.Job2 AS a1, [Job1] Or [Job2] AS a2, Activity.Job3 AS a3, IIf([canceled],1,IIf([moved],2,0)) AS x " & _
        "FROM Activity " & _
        "WHERE Activity.DateDone Between #" & Replace(Me.txtDate1, ".", "/") & "# And #" & Replace(Me.txtDate2, ".", "/") & "#;"
    Set rs = CurrentDb.OpenRecordset(strsql)
    For i = 0 To 2
        For x = 0 To 3
            Me.Controls("txt" & i & x) = 0
        Next x
    Next i
    rs.MoveFirst
    Do While Not rs.EOF
        For i = 0 To 3
            If rs("a" & i) Then Me.Controls("txt" & rs("x") & i) = Me.Controls("txt" & rs("x") & i) + 1
        Next i
        i = i + 1
        rs.MoveNext
    Loop


myExit:
    Me.btnCalculate.Enabled = True
    Exit Sub

myErr:
    MsgBox Err.Description
    GoTo myExit

End Sub

这段代码给我的结果是所有年份的生产力,而不是日期之间,假设它改变了日期和月份,所以我希望有人看到那里的解决方案,thnx =)

标签: vbadatems-access

解决方案


使用格式

"WHERE Activity.DateDone Between #" & Format(Me!txtDate1.Value, "yyyy\/mm\/dd") & "# And #" & Format(Me!txtDate2.Value, "yyyy\/mm\/dd") & "#;"

推荐阅读