dbgrid中统计查询结果的方法 |
答題得分者是:cashxin2002
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 在Form中再加一個ADOQuery元件(這里以ADOQuery2為名舉例)﹐然后在您查詢的程式碼最后(即查詢的資料集元件已經Open)增加如下﹕
ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('Select Sum(應收金額) From 資料表名稱'); ADOQuery2.Open; end;然后在對應當前DBGrid元件的資料集元件(這里以ADOQuery1舉例)的AfterOpen事件中鍵入如下程式碼﹕ begin StatusBar1.Panel[0].Text := '符合查詢條件的記錄共有'+IntToStr(DBGrid1.DataSource.DataSet.RecordCount)+'條'; StatusBar1.Panel[1].Text := '合計'+FloatToStr(ADOQuery2.Fields[0].Value); end;以上的方法在使用時﹐需要先設定StatusBar1元件的Panels屬性﹐開啟此屬性的對話窗口中﹐新增兩個Panel﹐并將SimplePanel屬性設為False﹐在顯示時也是將StatusBar1的顯示分為兩個區域﹒ 另外﹐從您的敘述來看﹐似乎在StatusBar1元件顯示資料時﹐只使用了單個Panel用作顯示﹐那樣的話﹐除了以上的方法﹐也可直接使用其SimplePanel屬性﹐將SimplePanel屬性設成True﹐然后將程式碼改成如下即可﹕ begin StatusBar1.SimpleText := '符合查詢條件的記錄共有'+IntToStr(DBGrid1.DataSource.DataSet.RecordCount)+'條﹐合計'+FloatToStr(ADOQuery2.Fields[0].Value); end;如果查詢出的資料是允許使用者修改﹑刪除﹐需要即時的在StatusBar1中反應出相對應的記錄筆數和合計數量更動﹐您可將以上StatusBar1元件部分的程式碼改寫在DataSource元件的OnDataChange事件中﹒ 供參考﹗ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 很簡單的方法﹐就是把ADOQuery1的SQL查詢寫在ADOQuery2的資料庫名稱部分﹐即子查詢語法﹐如下﹕
Select Sum(應收金額) From (Select * From 資料表 Where 字段=1)
把您的ADOQuery1的所有SQL語法寫到如上範例的紅色部分即可﹒ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 因為ADOQuery1中的SQL敘述已經被指定﹐所以可以使用組字串來加入到ADOQuery2的SQL中﹐如下﹕
ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Text := 'Select Sum(應收金額) From (' + ADOQuery1.SQL.Text + ')'; ADOQuery2.Open;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
amy012117
一般會員 發表:13 回覆:5 積分:3 註冊:2005-06-04 發送簡訊給我 |
|
anags
一般會員 發表:0 回覆:1 積分:0 註冊:2007-09-24 發送簡訊給我 |
|
jackiemi2_seed
中階會員 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
Select Sum(應收金額) From (Select * From 資料表 Where 字段=1) A
(Select * From 資料表 Where 字段=1) 後面需要加上新名字,如上面的"A" 就可以了 ===================引 用 anags 文 章=================== 你好 你的思路很好,但sql语句无法执行。出现错误:')' 附近有语法错误 请指教
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |