兩個表格查詢方法 |
尚未結案
|
jacosun
一般會員 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
各位大大,在下有兩個表格
USERINFO(表格名稱)欄位有 NUMBER、NAME、USERID
CHECKINOUT(表格名稱)欄位有 USERID、CHECKTIME、CHECKTYPE
==================================
小弟的語法如下請問出在那??
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select NUMBER,NAME,CHECKTIME,CHECKTYPE FROM USERINFO RIGHT JOIN CHECKINOUT');
ADOQuery1.SQL.Add('on USERINFO.USERID = CHECKINOUT.USERID');
ADOQuery1.SQL.Add('where USERINFO.NUMBER="' Edit1.Text '" and CHECKINOUT.CHECKTIME >="#DateTimePicker1.DateTime#" and CHECKINOUT.CHECKTIME >="#DateTimePicker2.DateTime#"');
ADOQuery1.Open;
為啥會出現準則運算式的資料型類不符合??CHECKINOUT.CHECKTIME<==這個欄位的型態為日期/時間丫,資料庫為access。
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
建議你改用動態參數的方式
ADOQuery1.SQL.Add('where USERINFO.NUMBER= :P1 and CHECKINOUT.CHECKTIME >=:P2 and CHECKINOUT.CHECKTIME >= :P3'); ADOQuery1.Parameters.ParamByName('P1').Value := Edit1.Text;
ADOQuery1.Parameters.ParamByName('P2').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.ParamByName('P3').Value := DateTimePicker2.DateTime; 依此即可
------
熊的學習 http://huwk.blogspot.com |
jacosun
一般會員 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
引言: 建議你改用動態參數的方式 ADOQuery1.SQL.Add('where USERINFO.NUMBER= :P1 and CHECKINOUT.CHECKTIME >=:P2 and CHECKINOUT.CHECKTIME >= :P3'); ADOQuery1.Parameters.ParamByName('P1').Value := Edit1.Text; ADOQuery1.Parameters.ParamByName('P2').Value := DateTimePicker1.DateTime; ADOQuery1.Parameters.ParamByName('P3').Value := DateTimePicker2.DateTime; 依此即可真得是殘念,照大大的寫法他就死給我看 一動也不動 @@! 真不知問題出在那? |
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
插个花:
show show你的SQL语句就可以知道问题所在,改为如下:
begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select NUMBER,NAME,CHECKTIME,CHECKTYPE FROM USERINFO RIGHT JOIN CHECKINOUT'); ADOQuery1.SQL.Add('on USERINFO.USERID = CHECKINOUT.USERID'); ADOQuery1.SQL.Add('where USERINFO.NUMBER="' Edit1.Text '" and CHECKINOUT.CHECKTIME >= #' datetostr(DateTimePicker1.DateTime) '# and CHECKINOUT.CHECKTIME <= #' datetostr(DateTimePicker2.DateTime) '#'); //另用formatdatetime也行, //如CHECKINOUT.CHECKTIME >= #' formatdatetime('yyyy-MM- dd',DateTimePicker1.DateTime) '# // showmessage(ADOQuery1.SQL.Text); <<--show出SQL语句 ADOQuery1.Open; end; 另如果要用动态参数也行,参考 ADOQuery1.SQL.Add('where USERINFO.NUMBER= :P1 and CHECKINOUT.CHECKTIME >=:P2 and CHECKINOUT.CHECKTIME <= :P3'); ADOQuery1.Parameters.ParamByName('P1').DataType:=ftstring; ADOQuery1.Parameters.ParamByName('P1').Value := Edit1.Text; ADOQuery1.Parameters.ParamByName('P2').DataType:=ftdatetime; ADOQuery1.Parameters.ParamByName('P2').Value := DateTimePicker1.DateTime; ADOQuery1.Parameters.ParamByName('P3').DataType:=ftdatetime;//根据你的类型来定,是date就ftdate是datetime就ftdatetime ADOQuery1.Parameters.ParamByName('P3').Value := DateTimePicker2.DateTime; 注意蓝色部分 试试看<> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ > 發表人 - |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |