【问题标题】:Ms Access VBA Date filterMs Access VBA 日期过滤器
【发布时间】:2016-11-21 16:30:01
【问题描述】:

我正在自学 VBA 代码,我有一个问题。 希望能得到您的帮助。

这是我的情况:

我在表中有 15 条记录,它们的日期值如下:
2016 年 1 月 31 日、2016 年 2 月 29 日、2016 年 11 月 30 日、2016 年 12 月 31 日
字段名称是 [dayTo]

我有两个表格,
第一种形式 = “F_temp”,此形式的 txt 框“date0”。
2nd Form = "F_visitorRec",这个表格会显示从[dayTo]开始的记录

我想制作一个 openForm,条件如下:

DoCmd.OpenForm "F_visitorRec", acNormal, , "[dayTo] >= #" & Me![date0] & "#"

但我从来没有成功,如果我输入 01 Nov 2016,它将显示所有 15 条记录。
如果我输入 2016 年 11 月 9 日,它会显示比 9 月大的日期。
如果我输入 2016 年 11 月 13 日,结果是正确的,
它可以显示大于 2016 年 11 月 13 日的记录。
我知道这个问题应该与日期格式有关,但我尝试了很多方法但仍然无法解决。

希望能得到你的帮助。

【问题讨论】:

  • 你的表格日期的数据类型是什么?最好将日期称为年-月-日。
  • 谢谢!我已将字段、txt 框、查询格式设置为 yyyy/mmm/dd。但还是不行。古斯塔夫的回答是工作。非常感谢!

标签: date ms-access vba


【解决方案1】:

对日期值的字符串表达式应用适当的格式:

DoCmd.OpenForm "F_visitorRec", acNormal, , "[dayTo] >= #" & Format(Me![date0].Value, "yyyy\/mm\/dd") & "#"

【讨论】:

  • 非常感谢!古斯塔夫!
    但是我应该在字段、txt 框、查询中选择哪种格式?还是留空?
  • 我已经尝试关注但为什么没有工作。
    Dim date0 As String date0 = Format(Date, "dd\mmmm\yyyy")
  • 通常,您将 Format 属性设置为 Short DateLong Date
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多