請問用edit和button該怎麼實現搜尋功能? |
尚未結案
|
bluesup0505
一般會員 發表:4 回覆:8 積分:2 註冊:2003-07-25 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 請問您所說的Edit輸入, 會針對目前資料表中的單一欄位嗎?
若是的話, Query元件的SQL語法和Table元件的Locate皆可做到, 請參考如下: 使用ADOQuery元件例, Button1的OnClick事件:
begin if Edit1.Text := '' then begin ShowMessage('請輸入查詢內容'); Edit1.SetFocus;//先判斷Edit1中是否已經有查詢的條件 end else begin ADOQuery1.Close; ADOQuery1.SQl.Clear; ADOQuery1.SQL.Add('Select * From 資料表名 where'); ADOQuery1.SQL.Add('查詢之欄位名=''' Edit1.Text ''''); //以上兩句也可用Parameters來完成, 如下: //ADOQuery1.SQL.Add('Select * From 資料表名 Where 查詢之欄位名=:X'); //ADOQuery1.Parameters.ParamByName('X').Value := Edit1.Text; ADOQuery1.Open; end; end;============================================================================ 使用Table元件例, Button1的OnClick事件: begin if Edit1.Text := '' then begin ShowMessage('請輸入查詢內容'); Edit1.SetFocus; end else begin if Table1.Locate('查詢之欄位名',Edit1.Text,[]) then ShowMessage('查詢到相符資料') else ShowMessage('查詢不到相符資料'); end; end;至于DBGrid元件, 只要設置正确, 它是會根据查詢的結果自動顯示出資料的. 如果您是要使用ADO元件, 并是在多資料表中進行查詢工作, 可利用ADOConnection元件之GetTableName方法取得資料表的名稱, GetFieldName取得欄位名稱, 判斷資料表和欄位后再進行查詢. 參考看看! ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/29 13:03:20
------
忻晟 |
bluesup0505
一般會員 發表:4 回覆:8 積分:2 註冊:2003-07-25 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您所說的要輸入全部的名字﹐才可以查詢﹒
其實也可用Locate方法的參數做以控制﹐Locate方法中有兩個查詢的參數﹕loCaseInsensitive和loPartialKey﹐分別代表查詢時不分字母大小寫和查詢時只要部分資料符合﹐此筆資料就算符合﹒語法如下﹕
begin if Table1.Locate('查詢之欄位名',Edit1.Text,[loCaseInsensitive, loPartialKey]) then ShowMessage('查詢到相符資料') else ShowMessage('查詢不到相符資料'); end;//這樣查詢的結果可能會有很多筆資料會相符﹐因為部分內容和查詢條件相符即可﹐我有測試過這樣的查詢﹐若有查詢到的結果﹐指針應該會指向目前查詢到結果的第一筆資料錄 使用Query或ADOQuery資料集元件時﹐利用SQL語法做查詢的動作﹐可以使用%來表示萬元字符﹐即可代表任何一個字元﹐結合Like運算子來做同樣的查詢﹐如下﹕ begin ADOQuery1.Close; ADOQuery1.SQl.Clear; ADOQuery1.SQL.Add('Select * From 資料表名 where'); ADOQuery1.SQL.Add('查詢之欄位名 Like ''%' Edit1.Text '%'''); //以上兩句也可用Parameters來完成, 如下: //ADOQuery1.SQL.Add('Select * From 資料表名 Where 查詢之欄位名=:X'); //ADOQuery1.Parameters.ParamByName('X').Value := '%' Edit1.Text '%'; ADOQuery1.Open; end;//所有符合的查詢條件的資料都會顯示出來﹐指針會指向會指向目前查詢到結果的第一筆資料錄﹒ 您所說的要用滑鼠去點擊Button來做查詢﹐而不能使用鍵盤﹒ 較簡單的處理方法﹐可以把這個查詢的Button按鈕設成當前Form中的Default﹒點擊該Button﹐在其Default屬性中﹐將其屬性值設為True﹐其作用就是在這個Form中﹐只要您按下回車鍵﹐就會触發這個Button的OnClick事件﹒ //注﹕每個Form中只能有一個Default元件 其實﹐應該是有很多種可以相通變通的方法﹐看您自己的需要可以進行組合﹐參考一下﹐再試試看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |