程序如下:
Public adocn As New ADODB.Connection
Public adors As New ADODB.Recordset
Public adocmd As New ADODB.Command
adocn.ConnectionString = "DSN=hys;DATABASE=hys"
adocn.Open
With adors
       If .State = 1 Then .Close
       Set adocmd.ActiveConnection = adocn
       adocmd.CommandText = "Select * from djqsr where 生产日期 &_  between  DTPicker1.Value and DTPicker2.Value
        'DTPicker1和DTPicker2控件用于接受日期
        .CursorLocation = adUseClient
        .Open adocmd.CommandText, adocn, adOpenDynamic,&_ adLockBatchOptimistic, 2            
End With
请高手赐教,请给出修改后的代码!定重谢!

解决方案 »

  1.   

    adocmd.CommandText = "Select * from djqsr where 生产日期 between '" & DTPicker1.Value  & "' and '" & DTPicker2.Value &"'"
      

  2.   

    感谢关注.
    修改之后,问题依旧.提示:FROM 子句语法错误.
      

  3.   

    你用的是什么数据库,Oracle,Sql Server???
      

  4.   

    感谢SUPERWEAK的关注.
    我用的是ACCESS,确认时间类型匹配后,问题依旧.
    请大侠们赐教.
      

  5.   

    adocmd.CommandText = "Select * from djqsr where 生产日期 between '#" & DTPicker1.Value  & "#' and '#" & DTPicker2.Value &"#'"
      

  6.   

    access数据库的日期格式是要用 “#”号的,如果上面的不行,试试这样改:
    adocmd.CommandText = "Select * from djqsr where 生产日期 between '#"+ DTPicker1.Value  + "#' and '#" + DTPicker2.Value +"#'"
      

  7.   

    感谢SKYSYAN的关注.
    采用第二种办法后,问题消失.
    新问题出现,提示:数据类型不匹配
    请SKYSYAN或者大侠们赐教!
      

  8.   

    试试这样改:
    adocmd.CommandText = "Select * from djqsr where 生产日期 between #"+ DTPicker1.Value  + "# and #" + DTPicker2.Value +"#"
      

  9.   

    恩,access 用#,SQL 用&
      

  10.   

    adocmd.CommandText = "Select * from djqsr where 生产日期 between '#" & DTPicker1.Value  & "#' and '#" & DTPicker2.Value &"#'"用了#就把单引号去掉才正确,改成下面的代码包你OK.
    adocmd.CommandText = "Select * from djqsr where 生产日期 between #" & DTPicker1.Value  & "# and #" & DTPicker2.Value & "#"