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

时间:2015-05-14 20:18:42

标签: sql vba ms-access combobox access-vba

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

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

UnavailableFrom是tblEquipment表中的日期/时间字段,可以为空。但是RowSource似乎根本不起作用。但是,当我在OR之后移除部件时它会工作,但是它会忽略具有空白UnavailableFrom字段的设备......帮助!谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

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