請問一個DBGrid的問題~~ |
尚未結案
|
jesszn
一般會員 發表:7 回覆:5 積分:2 註冊:2003-09-06 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! DBGrid是負責顯示的資料感知元件, 如果僅僅從DBGrid著手去處理您需要的結果, 可能比較困難, 小弟做了個變通的方法, 在Form Create的時候增加一個欄位, 并賦予此欄位由1開始的編號值, 再利用SQL語法來查詢處于第10筆至第20筆的資料, 通過DBGrid顯示出來.
在Form的OnCreate事件中, 寫入如下程式碼: procedure TForm1.FormCreate(Sender: TObject); Var I : Integer; begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Alter Table 訂單 Add 編號 Integer'); ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * From 客戶'); ADOQuery1.Open; ADOQuery1.First; I := 0; While not ADOQuery1.Eof do begin I := I 1; ADOQuery1.Edit; ADOQuery1.FieldByName('編號').AsInteger := I; ADOQuery1.Post; ADOQuery1.Next; end; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select 客戶編號,客戶名稱,地區,地址,電話,日期 From 客戶'); ADOQuery1.Open; end; 而后, 在Form上加入一個Button元件, 在其OnClick事件中寫入如下程式碼: procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select 客戶編號,客戶名稱,地區,地址,電話,日期 From 客戶 Where 編號 Between 10 and 20'); ADOQuery1.Open; end; 最后在Form的OnClose事件中寫入如下程式碼, 作用是刪除OnCreate時建立的編號欄位: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Alter Table 訂單 Drop 編號'); ADOQuery1.ExecSQL; ADOQuery1.Close; end;當然, 您還可以利用輸入編號數值的方式, 來指定需要顯示的資料為哪些, 只需要改動Button1的OnClick事件中的Between...and語句, 利用變數值來指定即可. 參考看看! ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/09/26 00:29:44
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |