回 帖 发 新 帖 刷新版面

主题:求教:在一定的时间内查询组合框里的内容?

各位老师好:想学一定的时间内查询组合框里的内容。在一个表单上,有一个时间段text1,text2和一个组合框combol。在text1和text2输入想查询的时间后,再选择组合框的内容,就能查询数据表里的受时间段和组合框限制的数据。
用这个代码
SELECT 数据表
tj="地址='"+ALLTRIM(thisform.container1.combo1.displayvalue)+"'and 日期='"+ALLTRIM(BETWEEN(thisform.container1.text1.value and thisform.container1.text2.value))"'";
SELECT * from 数据表 where &tj into table 临时表
提示参数太少。
谢谢

回复列表 (共5个回复)

沙发

假设你combo1是按单位查询,给它起名gcunit
text1是起始时间,起名gtuptime
text2是结束时间,起名gtdntime

LOCAL gcunit, gtuptime, gtdntime

gcunit=THISFORM.unitlist.DISPLAYVALUE
gtuptime=THISFORM.txtuptime.VALUE
gtdntime=THISFORM.txtdntime.VALUE

SELECT distinct * FROM (THISFORM.DATAENVIRONMENT.cursor1.ALIAS);
    INTO CURSOR gndatatemp WHERE ;
         BETWEEN(TTOD(kqwtbook.ttime),gtuptime,gtdntime) AND ;
    IIF(ALLTRIM(gcunit)=="全部", .T. ,ALLTRIM(archives.unit)==ALLTRIM(gcunit));
    ORDER BY unit

IIF(ALLTRIM(gcunit)=="全部", .T. ,ALLTRIM(archives.unit)==ALLTRIM(gcunit))的作用是来设定查询的是某个单位还是所以单位。可以用additem()来添加。

板凳

gleam老师,里有很多提示找不见得代码。数据表在那里呢?谢谢

3 楼

BETWEEN()函数用法不正确。先试试下面的代码,有问题再自己修改一下:
tj="地址="+ALLTRIM(thisform.container1.combo1.displayvalue)+"and "+ALLTRIM(BETWEEN(DTOC(日期),thisform.container1.text1.value ,thisform.container1.text2.value))

4 楼

BETWEEN()函数的写法不正确。试试下面的代码。
tj="地址='"+ALLTRIM(thisform.container1.combo1.displayvalue)+"'and BETWEEN(日期,CTOD('"+ALLTRIM(thisform.container1.text1.value)+"'),CTOD('"+ALLTRIM(thisform.container1.text2.value)+"'))"
或者
tj="地址='"+ALLTRIM(thisform.container1.combo1.displayvalue)+"'and BETWEEN(日期,{^"+ALLTRIM(thisform.container1.text1.value)+"},{^"+ALLTRIM(thisform.container1.text2.value)+"})"

5 楼

两位老师好,我用了并修正,但提示函数不对、语法错误等,我真的很难把语句正确

我来回复

您尚未登录,请登录后再回复。点此登录或注册