線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:758
推到 Plurk!
推到 Facebook!

如何把查巡到的資料筆數,記到edit上

尚未結案
giyar
一般會員


發表:1
回覆:2
積分:0
註冊:2004-04-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-27 20:17:21 IP:210.201.xxx.xxx 未訂閱
小弟使用的是ADO的資料庫,我打算用把找到的資料筆數顯示在EDIT上,資料表內容如下: 主鍵值 員工ID 是否通過 不良品數量 日期 1 B001 FALSE 8 2004/3/5 2 B001 TRUE 2 2004/4/5 3 B002 FALSE 7 2004/4/7 4 B003 TRUE 2 2004/4/13 5 B003 FALSE 9 2004/5/6 小弟是以員工ID和日期期間來做查巡條件,如果是以員工ID B001和2004/3/5~2004/5/1為要查巡的修件,小弟在資料總數(EDIT1)的值應為2,不通過次數(EDIT2)的值應為1,平均不良品數量(EDIT3)的值應為5。 但小弟的程度不佳,資料總數總是出現5,而不是2。且後面的程式就打不出來了! 不論用SQL也好,或任何方法,請幫忙! PS:物件為ADOTABLE、DATASOUSE
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-27 21:19:10 IP:203.204.xxx.xxx 未訂閱
giyar, 您好 請提供您的程式碼,以便了解您出錯的地方, 此方式比直接告訴您程式碼的方式, 讓您的收穫更多。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
giyar
一般會員


發表:1
回覆:2
積分:0
註冊:2004-04-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-28 10:25:09 IP:210.243.xxx.xxx 未訂閱
這是小弟的程式 procedure ADOTable1FilterRecord(DataSet: TDataSet; var Accept: Boolean); var EmClas: TEmClas; myem: string; procedure TEmClas.ADOTable1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept:=ADOTable1['員工ID']= myem; end; procedure TEmClas.Button4Click(查巡鈕)(Sender: TObject); begin ADOTable1.Filtered:=false; myem:=edit4.Text;(在edit4上輸入員工ID,後查巡) edit1.text:=inttostr(ADOTable1.Recordcount); ADOTable1.Filtered:=true; end; 後面的不通過次數,平均不良品數量就全沒頭緒,查巡的還不包括日期!而我所知的Recordcount好像並不是正確的方法就是了!
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-28 13:23:02 IP:210.243.xxx.xxx 未訂閱
Hi giyar: 您試試如下改變:    procedure TEmClas.Button4Click(查巡鈕)(Sender: TObject); begin ADOTable1.Filtered:=false; myem:=edit4.Text;(在edit4上輸入員工ID,後查巡) ADOTable1.Filtered:=true edit1.text:=inttostr(ADOTable1.Recordcount);; end;
引言: 後面的不通過次數,平均不良品數量就全沒頭緒,查巡的還不包括日期!而我所知的Recordcount好像並不是正確的方法就是了!
我會建議使用SQL 來取代ADOTABLE, 比較有彈性 例如: //不通過次數 SQL1:='SELECT COUNT(*) CNT FROM TABLE WHERE 通過=''FALSE'''; //平均不良品數量 SQL1:='SELECT AVG(數量) NUM FROM TABLE WHERE 您的條件'; ADOQuery1.Close; ADOQuery1.SQL.text:=SQL1; ADOQuery1.Open; edit1.text:=ADOQuery1.fieldbyName('NUM').asString; 您覺得如何呢?? 發表人 - yachanga 於 2004/04/28 13:41:10
giyar
一般會員


發表:1
回覆:2
積分:0
註冊:2004-04-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-05 16:23:11 IP:140.128.xxx.xxx 未訂閱
抱歉,小弟忘記要回信,直到今天才開信箱。 小弟的問題,感謝 yachanga 大大的開導,已經解決了。 不過不是用大大教的方法,而是小弟用ADOQUERY來做,因為先前的方法,來算recordcount,不論如何一定是資料總數,而不是已經查詢出的總數。但如果先用sql來表現的話,就可以用recordcunt來算。 但無論如此,沒有大大的開導,小弟是想不到這點的,所以小弟十分的感謝。
系統時間:2024-04-30 0:52:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!