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

delphi的查詢問題

尚未結案
TOTOROTW
一般會員


發表:5
回覆:2
積分:1
註冊:2005-06-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-09 16:50:44 IP:210.241.xxx.xxx 未訂閱
表單所需功能應有:自行製作的控制鈕、能將部門所有資料列印出來的按鍵(列印結果如下第二個圖)以及查詢相關部門之按鍵(例如:在空格輸入「業務」兩個字,在DataGrid上會有所有業務部門的資料出現,請使用SQLQuery物件來下指令)。 請問要如何做?麻煩大大...
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-09 17:38:24 IP:202.62.xxx.xxx 未訂閱
您好﹗    您的問題太籠統﹐報表的制作您可參考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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-10 09:52:11 IP:210.241.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-10 10:18:54 IP:202.62.xxx.xxx 未訂閱
您好﹗    從您貼出的程式碼﹐似乎看不出何錯誤的端倪﹐貼出完整的程式碼看看﹒    在Form中加入一個DataSource元件(比如DataSource1)﹐將DataSource1元件的DataSet屬性設為DataModule2.SQLQuery1﹐然后再將DBGrid1元件的DataSource屬性設為DataSource1﹐即剛才新加入的DataSource1元件﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
TOTOROTW
一般會員


發表:5
回覆:2
積分:1
註冊:2005-06-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-10 13:56:45 IP:210.241.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-10 14:05:32 IP:202.62.xxx.xxx 未訂閱
您好﹗    發現一個問題﹐如下紅色處﹕
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-10 14:15:09 IP:202.62.xxx.xxx 未訂閱
您好﹗    另外請注意在上貼程式碼的時候﹐請注意使用縮排方法﹐以利于觀察﹐方法為﹕在程式碼左右加上【code】和【/code】(皆為半角形態)即可﹐如下﹕ 【code】begin   程式碼 end;【/code】    如果還不明白的話﹐可參考ddy副站的說明﹕ http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57538    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
系統時間:2024-06-29 18:25:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!