我在Access数据库里有个字段  "下单日期"  格式是 "2011-01-05" 我想搜索数据库里 小于 "2011-01-05"的数据字段该如何写.请各位帮下忙,下面是我的代码,一看就不对,可以不知道怎么改,请大夹帮我改下,十分感谢...
       Dim i As Integer
        For i = 0 to rs.RecordCount - 1
            If RS.Fields("下单日期") < "2011-01-05" Then         '这句咋看咋不对..呵呵.
                Debug.Print rs.Fields("物品名称")
            End If
         rs.MoveNext
        Next i

解决方案 »

  1.   

    可以改成:
    If Format(RS.Fields("下单日期"),"yyyy-mm-dd") < "2011-01-05" Then
    最好改成:
    If DateDiff("d", RS.Fields("下单日期"), "2011-01-05") > 0 Then
      

  2.   

    还可改成:
    If cdate(RS.Fields("下单日期")) < #2011-01-05# Then
    ^_^
      

  3.   

    也可以改为...If strcomp(trim(Format(RS.Fields("下单日期"),"yyyy-mm-dd")), "2011-01-05") )< 0 ThenMSDN:StrComp 函数
          返回 Variant (Integer),为字符串比较的结果。语法StrComp(string1, string2[, compare])StrComp 函数的语法有下面的命名参数:部分 说明 
    string1 必要参数。任何有效的字符串表达式。 
    string2 必要参数。任何有效的字符串表达式。 
    Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。 
    设置compare 参数设置为:常数 值 描述 
    vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。 
    vbBinaryCompare 0 执行一个二进制比较。 
    vbTextCompare 1 执行一个按照原文的比较。 
    vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。 
    返回值StrComp 函数有下列返回值:如果 StrComp 返回 
    string1 小于 string2 -1 
    string1 等于 string2 0 
    string1 大于 string2 1 
    string1 或 string 2为 Null Null 
      

  4.   

    VB里我一般用2F的写法.
    但楼主为什么不直接在SQL查询语句中作比较然后显示结果,这样不是更方便吗
      

  5.   

    也可以这样写
    If CTOD(RS.Fields("下单日期").Value) < #2011-01-05# Then
    楼主的数据库字段为什么不设计成日期型的?
      

  6.   

    谢谢大家...
    我是这样写的:
    If DateValue(RS.Fields("下单日期")) < "2011-01-05" Then 呵呵还不错..