功能描述:从两个DTPicker控件中选择时间段,并结合其他条件,在数据库中查找满足条件的记录.txtsql=txtqsl& DTPicker4.Value <=cdate(jjbrq) and cdate(jjbrq)<=DTPicker3.Value说明txtsql将作为Set rcs = ExecuteSQL(txtsql, MsgText)的参数.txtsql=txtqsl&意思是前面还有限定条件. 而"jjbrq"是数据库内的代表日期的字段名(类型为文本型,由于某种原因不用日期型).问题:1.cdate(jjbrq)是否可将jjbrq转换为日期型.
2.若1能,则txtsql&后面应该怎么写
这是我写的,有错: txtsql = txtsql & "DTPicker4.Value<='&cdate&"("&jjbrq&")"'& And &'cdate&"("&jjbrq&")"'&<=&"DTPicker3.Value & ""请高手执教!!!
2.若1能,则txtsql&后面应该怎么写
这是我写的,有错: txtsql = txtsql & "DTPicker4.Value<='&cdate&"("&jjbrq&")"'& And &'cdate&"("&jjbrq&")"'&<=&"DTPicker3.Value & ""请高手执教!!!
txtsql=txtqsl & "where jjbrq>=#" & format(DTPicker4.Value, "yyyy-mm-dd") & "# and jjbrq<=#" & format(DTPicker3.Value, "yyyy-mm-dd") & "#"你可以根据库中日期格式调整 Format 的模板。
txtsql=txtqsl &中的第二个txtsql中已经有where存在
Sql = Sql & " where machnumber='008' and WorkNumBer like 'A%'"
Sql = Sql & IIf(DTStart.Value <> "", " and left(a.ActDatetime,10)>='" & Format(DTStart.Value, "YYYY-MM-DD") & "'", "")
Sql = Sql & IIf(DTEnd.Value <> "", " and left(a.ActDatetime,10)<='" & Format(DTEnd.Value, "YYYY-MM-DD") & "'", "")
Sql = Sql & IIf(comCardIdStart.Text <> "", " and WorkNumber>='" & comCardIdStart.Text & "'", "")
Sql = Sql & IIf(comCardIdEnd.Text <> "", " and WorkNumber<='" & comCardIdEnd.Text & "'", "")以上是我用DTPicker的一個例子
其中DTStart與DTEnd就是兩DTPicker控件
像你說的已經存Where的問題也一並解決
txtsql=txtqsl & " jjbrq>=#" & format(DTPicker4.Value, "yyyy-m-d") & "# and jjbrq<=#" & format(DTPicker3.Value, "yyyy-m-d") & "#"
1>你上面的这句,将变量名称放到了字符串当中去了...
2>在VB下操作ACCESS数据库,对日期的判断值前应该使用# #将日期括起来。针对上面的那行,应该改为:
txtsql=txtsql & Dtpicker4.Value & "<=#" & cdate(jjbrq) & "# And #" & cdate(jjbrq) & " # <=" & Dtpicker3.Value & '#"试试,我没测过,不过遵循以上两条原则,是可以写正确的。
编译时报错说,jjbrq变量未定义(之前用了option explicit )
请问,jjbrq是记录集内的一个字段名,在此
可以用做变量吗? 要定义又应该申明成string还是什么
如果是ACCESS的,需要加"#"
txtsql=txtsql & Dtpicker4.Value & "<=#" & cdate(jjbrq) & "# And #" & cdate(jjbrq) & " # <=" & Dtpicker3.Value & '#"如果是SQL的话,就是
txtsql=txtsql & Dtpicker4.Value & "<='" & cdate(jjbrq) & "' And " & cdate(jjbrq) & " <='" & Dtpicker3.Value & " '"
----------------------------------------------------------------------
1>在SQL中的做法:
txtsql=txtsql & " cast(jjbrq as smalldatetime) between #" + dtpicker4.value + "# and #" +dtpicker3.value +"#"
2>在ACCESS中,不知道能不能使用日期函数转将jjbrq转换成日期..?如果可以的话,格式基本上同SQL中的一样。把cast转换函数替换成ACCESS能识别的就行了。