delphi的查詢問題 |
尚未結案
|
TOTOROTW
一般會員 發表:5 回覆:2 積分:1 註冊:2005-06-09 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您的問題太籠統﹐報表的制作您可參考QuickRep相關的資料和書籍﹐以下幫您寫段有關查詢的程式碼以供您參考﹕
將以下程式碼寫在您所說的空白(例Edit1元件)的OnChange事件中 //寫在這個事件中﹐當Edit1的內容有變動的時候立即触發程式碼 begin ADOQuery1.DisableControls; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * From 資料表名稱 Where '); ADOQuery1.SQL.Add('部門名稱 Like '''+Edit1.Text+''''); ADOQuery1.Open; if ADOQuery1.IsEmpty then //如果查詢不到相符合的資料 begin ShowMessage('找不到相符合的資料﹐ADOQuery1將開啟所有的資料'); ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * From 資料表'); ADOQuery1.Open; //如果找不到相符合的資料﹐則出現信息提示﹐ //并開啟顯示所有的資料 end; ADOQuery1.EnableControls; end;設定部分﹐需要將DBGrid元件通過DataSource元件連接到上游的ADOQuery1元件﹐當ADOQuery1開啟時﹐DBGrid即可顯示對應的資料﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
TOTOROTW
一般會員 發表:5 回覆:2 積分:1 註冊:2005-06-09 發送簡訊給我 |
DataModule2.SQLQuery1.DisableControls;
DataModule2.SQLQuery1.Close;
DataModule2.SQLQuery1.SQL.clear;
DataModule2.SQLQuery1.SQL.Add('select * from DEPT where ');
DataModule2.SQLQuery1.SQL.Add('部門名稱 Like '''''+Edit1.text+'''');
DataModule2.SQLQuery1.open;
DataModule2.SQLQuery1.EnableControls; 我這樣寫對嗎??不過它還是不能執行...
我打上查詢時..它出現視窗
還有那個DBGrid的屬性連結嗎?還是???
我不知道它要連結在那裡
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 從您貼出的程式碼﹐似乎看不出何錯誤的端倪﹐貼出完整的程式碼看看﹒ 在Form中加入一個DataSource元件(比如DataSource1)﹐將DataSource1元件的DataSet屬性設為DataModule2.SQLQuery1﹐然后再將DBGrid1元件的DataSource屬性設為DataSource1﹐即剛才新加入的DataSource1元件﹒ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
TOTOROTW
一般會員 發表:5 回覆:2 積分:1 註冊:2005-06-09 發送簡訊給我 |
DataModule2.SQLQuery1.DisableControls;
DataModule2.SQLQuery1.Close;
DataModule2.SQLQuery1.SQL.Clear;
DataModule2.SQLQuery1.SQL.Add('Select * From 資料表名稱 Where ');
DataModule2.SQLQuery1.SQL.Add('部門名稱 Like '''+Edit1.Text+'''');
DataModule2.SQLQuery1.Open;
if DataModule2.SQLQuery1.IsEmpty then
ShowMessage('找不到相符合的資料﹐ADOQuery1將開啟所有的資料');
DataModule2.SQLQuery1.Close;
DataModule2.SQLQuery1.SQL.Clear;
DataModule2.SQLQuery1.SQL.Add('Select * From 資料表');
DataModule2.SQLQuery1.Open;
DataModule2.SQLQuery1.EnableControls;
我已經貼原始碼了..還是不行..= =
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 發現一個問題﹐如下紅色處﹕
begin DataModule2.SQLQuery1.DisableControls; DataModule2.SQLQuery1.Close; DataModule2.SQLQuery1.SQL.Clear; DataModule2.SQLQuery1.SQL.Add('Select * From 資料表名稱 Where '); //以上紅色處資料表名稱請換成您實際的資料表名稱 DataModule2.SQLQuery1.SQL.Add('部門名稱 Like '''+Edit1.Text+''''); //以上紅色處部門名稱請換成您實際的資料表中供查詢的欄位名稱 //以上紅色處Edit1請換成您實際供使用輸入并用于查詢的Edit名稱 DataModule2.SQLQuery1.Open; if DataModule2.SQLQuery1.IsEmpty then begin //加上以上紅色處的begin ShowMessage('找不到相符合的資料﹐ADOQuery1將開啟所有的資料'); DataModule2.SQLQuery1.Close; DataModule2.SQLQuery1.SQL.Clear; DataModule2.SQLQuery1.SQL.Add('Select * From 資料表'); //以上紅色處資料表請換成您實際的資料表名稱 DataModule2.SQLQuery1.Open; end; //加上以上紅色處的end; DataModule2.SQLQuery1.EnableControls; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/06/10 14:07:47
------
忻晟 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 另外請注意在上貼程式碼的時候﹐請注意使用縮排方法﹐以利于觀察﹐方法為﹕在程式碼左右加上【code】和【/code】(皆為半角形態)即可﹐如下﹕
【code】begin
程式碼
end;【/code】 如果還不明白的話﹐可參考ddy副站的說明﹕
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57538 =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |