【问题标题】:Date format with VBA - English VS French difference使用 VBA 的日期格式 - 英语与法语的区别
【发布时间】:2011-12-10 14:03:48
【问题描述】:

我在使用 Access 2010 时遇到问题。我正在使用包含的日期选择器和默认文本框。

在我工作的地方,有些电脑采用美国日期格式 (mm/dd/yyyy),而其他电脑采用加拿大日期格式 (dd/mm/yyyy)

我无法更改这些计算机的区域选项。

我已成功通过format(date,"dd/mm/yyyy") 强制日期

但是当我使用默认日期选择器选择一个日期时,它与 windows 区域选项一起使用,在这种情况下为 (mm/dd/yyyy) 但在其他计算机中,它会正常,在 (dd/mm/yyyy )。我需要用日期选择器覆盖日期格式,但我不知道如何。

这是截图,日期格式是美国格式,不行。

【问题讨论】:

  • 好的,我们在美国英语选择器上有一个“今日法语”按钮,格式大概是 mm/dd/yyyy。必须问自己在这里要达到什么目的...不要混合语言环境,也不要与它们作斗争,尤其是 mm/dd 与 dd/mm,因为大多数情况下它都是错误的。我是英国人,我的电脑设置为英语,我不想与 mm/dd/yyyy 有任何关系,我想我的殖民地同事也有类似的感受。那么为什么要强制 dd/mm/yyyy,将日期处理为日期而不是字符串。
  • 我住在加拿大魁北克省,工作时我们都说法语。只有windows有时会用英文设置。但是所有用户都使用法语工作,其中一些人很老,并且对格式日期的更改感到困惑,这会导致错误。¨ 法语按钮从一开始就在那里
  • 正确设置电脑比尝试你在做什么更容易,每次你靠近这些东西时都会出错。

标签: ms-access datetime vba datepicker


【解决方案1】:

我确信有一种更优雅的方法可以做到这一点,但我想您可以使用以下方式检测区域设置确定的日期格式:

If CInt(Left(CStr(DateSerial(2012, 1, 2)), 2)) = 2 Then
    MsgBox "Canadian locale, date format dd/mm/yyyy."
Else
    MsgBox "US locale, date format mm/dd/yyyy."
End If

然后基于此,解释日期选择器选择的日期并以您选择的格式重新显示它。

【讨论】:

    【解决方案2】:

    您能否将文本字段的 Format 属性设置为 dd/mm/yy 或您需要的任何值?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      相关资源
      最近更新 更多