QUERY和EDIT顯示資料問題 |
答題得分者是:st33chen
|
ru226531
一般會員 發表:12 回覆:10 積分:4 註冊:2008-05-06 發送簡訊給我 |
我們現在有兩個版面 我們使用delphi6的zeos元件 使用QUERY
一個是tabsheet1 另一個是tabsheet2 tabsheet1有dbtimepicker選擇日期後 將值丟進dbeidt12來顯示結帳單日期 存在reckoning資料表的reck_no欄位 tabsheet2是班表版面 一樣有dbtimepicker選擇日期後將值丟進dbedit13顯示班表日期 存在class資料表的day欄位 我們現在要判斷tabsheet1的reck_no欄位等於tabsheet2的day的值 會在tabsheet1的edit13顯示出員工編號(reck資料表和class資料表中都有員工編號) 請問該怎麼做呢?誠心請教各位大師 謝謝 以下是我們嘗試用最笨的方法的程式碼...XD" if (bn.ZQuery2.SQL.Add('select reck_no from reckoning')=bn.ZQuery2.SQL.Add('select day from class')) then bn.zQuery2.close; bn.zQuery2.SQL.Clear; bn.ZQuery2.sql.Add('select * from reckoning,class where reckoning.reck_no=class.day'); bn.zQuery2.Open; edit13.Text:=bn.zquery2.fieldbyname('e_no').asstring; |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
請問一下下面的問題
===================引 用 ru226531 文 章=================== 我們現在有兩個版面 我們使用delphi6的zeos元件 使用QUERY 一個是tabsheet1 另一個是tabsheet2 tabsheet1有dbtimepicker選擇日期後 將值丟進dbeidt12來顯示結帳單日期 存在reckoning資料表的reck_no欄位 tabsheet2是班表版面 一樣有dbtimepicker選擇日期後將值丟進dbedit13顯示班表日期 存在class資料表的day欄位 我們現在要判斷tabsheet1的reck_no欄位等於tabsheet2的day的值 會在tabsheet1的edit13顯示出員工編號(reck資料表和class資料表中都有員工編號) 請問該怎麼做呢?誠心請教各位大師 謝謝 以下是我們嘗試用最笨的方法的程式碼...XD" // 1、這個 if ......... 這樣寫有什麼用處? 他連 Open 都沒有怎麼比資料呢? // 您應該是比【資料】而不是比【SQL 語法】哦??? if (bn.ZQuery2.SQL.Add('select reck_no from reckoning')=bn.ZQuery2.SQL.Add('select day from class')) then bn.zQuery2.close; bn.zQuery2.SQL.Clear; // 2、如果不管哪一張有兩個一樣的時間的話,那您要找出的是哪一位員工? // 照下列的語法,絕對找出不只一筆,因為只要是時間一樣就列出,那 Edit13 也只能放一個而已 // 您應該再加個時間的條件式進去 bn.ZQuery2.sql.Add('select * from reckoning,class where reckoning.reck_no=class.day'); bn.zQuery2.Open; edit13.Text:=bn.zquery2.fieldbyname('e_no').asstring 綜合以上的問題,您還有一個問題沒說,列在 TabSheet1 裡的 Edit13 查詢日詢是以 TabSheet1 的日期為準? 還是 TabSheet2? 還是有另外的時間元件? 其實您的解法已經差不多了,再改下面這樣會更接近 bn.zQuery2.close; bn.zQuery2.SQL.Clear; bn.ZQuery2.sql.Add('Select e_no from reckoning,class where reckoning.reck_no=class.day and reckoning.reck_no=''' dbeidt12.Text ''''); // 1、再加上 紅色的部份,找出需要的日期,但請注意,有可能還是找出多筆,請適時再加上些條件來達成只找一筆 // 2、我把 Select * from 改成 Select e_no from ==> 請在下 SQL 命令時少用 * 號,來降低 DB 的負擔 bn.zQuery2.Open; edit13.Text:=bn.zquery2.fieldbyname('e_no').asstring
------
價值的展現,來自於你用哪一個角度來看待它!! |
ru226531
一般會員 發表:12 回覆:10 積分:4 註冊:2008-05-06 發送簡訊給我 |
bn.zQuery2.close;
bn.zQuery2.SQL.Clear; bn.ZQuery2.sql.Add('select * from reckoning,class where reckoning.reck_no=class.day AND reck_no=''' label179.Caption ''''); bn.zQuery2.Open; 目前這是我們寫的語法 假如在dbeidt12選擇日期,在DBGRID1(這是我們測試查詢用才建立的)會跑出reck_no=day的資料 但現在如果資料有2筆,要再寫什麼語法讓DBGRID1裡的第一筆e_no的資料放到edit1,第二筆e_no的資料放到edit2 麻煩各位高手了 謝謝 |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
依您題目回答是 : bn.zQuery2.first; edit1.text := bn.zQuery2.fieldbyname('e_no').asstring; bn.zQuery2.next; edit2.text := bn.zQuery2.fieldbyname('e_no').asstring; 問題是, 1. 可否透露一下什麼情況您需要這樣設計? 2. 如果資料超過2筆您想要如何處理? ===================引 用 ru226531 文 章=================== bn.zQuery2.close; bn.zQuery2.SQL.Clear; bn.ZQuery2.sql.Add('select * from reckoning,class where reckoning.reck_no=class.day AND reck_no=''' label179.Caption ''''); bn.zQuery2.Open; 目前這是我們寫的語法 假如在dbeidt12選擇日期,在DBGRID1(這是我們測試查詢用才建立的)會跑出reck_no=day的資料 但現在如果資料有2筆,要再寫什麼語法讓DBGRID1裡的第一筆e_no的資料放到edit1,第二筆e_no的資料放到edit2 麻煩各位高手了 謝謝
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |