访问 VBA 根据日期字段过滤组合框列表

Access VBA Filtering a combo box list based on Date field

这是我用来过滤 EquipmentID1 组合框的代码行:

    EquipmentID1.RowSource = "SELECT tblEquipment.Equipment, tblEquipment.UnavailableFrom FROM tblEquipment WHERE tblEquipment.UnavailableFrom >= " & Me!EndDate & " OR tblEquipment.UnavailableFrom Is Null;"

UnavailableFrom 是 tblEquipment table 中的一个 date/time 字段,它可以为空。但是 RowSource 似乎根本不起作用。但是,当我在 OR 之后删除零件时它确实有效,但随后它会忽略具有空白 UnavailableFrom 字段的设备...帮助!谢谢!

我的猜测是您只需要引用您尝试使用的日期。 Access SQL 中的日期需要用 # 字符引用。试试这个:

EquipmentID1.RowSource = _
  "SELECT tblEquipment.Equipment, tblEquipment.UnavailableFrom " & _
  "FROM tblEquipment " & _
  "WHERE tblEquipment.UnavailableFrom >= #" & Me!EndDate & "# " & _
    "OR tblEquipment.UnavailableFrom Is Null;"

如果在非美国环境中操作,您还必须强制设置日期表达式字符串的格式:

EquipmentID1.RowSource = _
  "SELECT tblEquipment.Equipment, tblEquipment.UnavailableFrom " & _
  "FROM tblEquipment " & _
  "WHERE tblEquipment.UnavailableFrom >= #" & Format(Me!EndDate, "yyyy\/mm\/dd") & "# " & _
    "OR tblEquipment.UnavailableFrom Is Null;"