用VB and sQL server 做系统 下面代码是实现查询功能的   输入职工号和出勤日期,即可查询到该员工本天的出勤时间,精确到秒,出勤时间查询条件那里使用了通配符,但是有问题,请大神帮我改下 
If Len(Text4.Text) > 0 Then
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 员工出勤表 where 职工号='" & Trim(Text4.Text) & "' and  出勤时间  like ' " & Trim(Text5.Text) & "  % ' "
Adodc1.RefreshElse
 MsgBox ("请指定要查找人员的职工号!"), , ("提示")
End If
 PS:  输入 员工号:0001
       输入 出勤日期: 2012/5/7    (出勤日期只是LABEL的caption 值   表中为出勤时间)
       输出结果 员工号:0001 
              出勤时间:   2012/5/7   13:23:23

解决方案 »

  1.   

    试试这个:Adodc1.RecordSource = "select * from 员工出勤表 where 职工号='" & Trim(Text4.Text) & "' and datediff(dd,出勤时间, cast('" & Trim(Text5.Text) & "' as datetime))=0 "
      

  2.   


    出勤时间 这个字段的类型如果datetime类型,时间类型使用like时,如果输入带入/符号就不能工作了,所以那么好像需要转换一下,可以用Convert函数。转换成varchar类型,当然时间格式也得和你要进行模糊查询的格式一样。 比如输入2012/5/7  那么出勤时间 这个字段转换成的格式也得是2012/5/7 13:23:23。
    下面是Convert 使用的说明。
     http://9host.cn/shujuku/200742218541614980.htmlPS:2012/5/7这种格式的时间不方便,建议使用2012-05-07 这种格式,
      

  3.   

    and 出勤时间 like ' " & Trim(Text5.Text) & " % ' "
    会出问题,因为时间LIKE不出来出勤时间=' "Trim(Text5.Text).tostring(yyyy-MM-dd)' "