【问题标题】:MS-Access VBA Date() works on one PC but not othersMS-Access VBA Date() 适用于一台 PC,但不适用于其他 PC
【发布时间】:2015-07-23 19:14:10
【问题描述】:

我正在从头开始设计我的第一个数据库,过去几周我学到了很多东西。不过,一直困扰我的一件事是,在我的登录页面上,我有一个简单的未绑定文本框,其控制源为=Date()

这在我大部分时间使用的计算机上运行良好,但我正在工作的设施中的任何其他计算机都显示#NAME? 而不是日期。

我尝试更改为=Now(),它在所有计算机上都可以正常工作。显然只有=Date() 有问题。如果字段控制源改回=Date()我被告知你输入的函数不能在这个表达式中使用

我已经检查了 MS-Access 版本,并在有和没有访问权限的机器上进行了尝试。

我真的需要Date() 才能工作,因为它在我的代码的更重要区域的其他地方使用,我可能无法使用Now() 代替它。关于为什么这可能无法在我自己的 PC 上运行的任何想法?

【问题讨论】:

  • 你到底想用它做什么?可以出示相关代码吗?
  • 请显示相关代码(不仅仅是单行代码)。
  • 代码就是=Date()。但我想我想通了。我查看了我的参考资料并禁用了一些看起来不合适的 microsoft 1.0 参考资料,现在它可以工作了......我很困惑,但松了一口气。
  • 感谢 h3nrik 的编辑。我该如何解决问题?

标签: vba date ms-access


【解决方案1】:

Date() 由 Visual Basic For Applications X.XX 参考控制。确保安装了引用并删除了所有竞争引用。

为此,打开 VBA 窗口并转到工具 --> 参考并确保选中正确的。

【讨论】:

  • 最终成为 MSExchange 1.0 类型库。我注意到另一个项目没有共享此引用,并且它的日期字段工作正常。删除它,现在一切似乎都正常了。
【解决方案2】:

我怀疑问题出在日期的用户区域和语言设置上。当我更换计算机时我注意到了这一点,由于日期中的斜线,我的文件将不再保存。您应该尝试使用format() 函数,以便您的日期始终具有相同的格式,并且可以在不受用户设置影响的机器上使用。

Sub Foo()
    Debug.Print Date
    Debug.Print format(Date, "yyyy-mm-dd")    
End Sub

输出

7/23/2015 
2015-07-23

【讨论】:

  • 感谢您的建议。我所有的计算机都是本地的,并且设置了所有相同的区域设置,但在你提到它之前,我从来没有想过要在那里寻找问题。
  • 虽然这可能有一些价值,但它并不能解决遇到的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 2017-03-28
  • 2021-05-24
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多