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

Access不能下Like嗎?

答題得分者是:T.J.B
Sei
一般會員


發表:22
回覆:38
積分:17
註冊:2002-05-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-03 11:23:07 IP:61.30.xxx.xxx 未訂閱
請教各位前輩: ACCESS裡是不是不可以下LIKE呢?因為我發現下了LIKE語法都查不到資料,如下 With ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Select * from Notebook'); SQL.Add('Where Titile like :String1'); Parameters.ParamByName('String1').Value := '%' Edit2.Text; end; 那個%不管我加前加後,前加後不加或前不加後加都查不出資料 不信邪進到ACCESS裡查,一樣? 那,我要下什麼語法才能模糊查詢呢?
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-03 11:33:28 IP:61.220.xxx.xxx 未訂閱
這樣子試試看
    With ADOQuery1 do
begin
 Close;
 SQL.Clear;
 SQL.Add('Select * from Notebook');
 SQL.Add('Where Titile like % :String1');
 Parameters.ParamByName('String1').Value := Edit2.Text;
  open;
end;
回首來時路 也無風雨也無晴~~@.@ 發表人 - T.J.B 於 2002/10/03 11:34:36
------
天行健
君子當自強不息~~@.@
Sei
一般會員


發表:22
回覆:38
積分:17
註冊:2002-05-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-03 11:46:57 IP:61.30.xxx.xxx 未訂閱
我照您的方法試是語法錯誤耶 With ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Select * from Notebook'); SQL.Add('Where Title like :String1'); Parameters.ParamByName('String1').Value := '%' + Edit2.Text; Open; ShowMessage(IntToStr(ADOQuery1.RecordCount)); end; 真是抱歉,一直刪把open給刪了 我的Edit2.Text輸入copy,結果是0,真是悲慘吶,我有好幾筆title裡都有copy呢!    
引言: 這樣子試試看
    With ADOQuery1 do
begin
 Close;
 SQL.Clear;
 SQL.Add('Select * from Notebook');
 SQL.Add('Where Titile like % :String1');
 Parameters.ParamByName('String1').Value := Edit2.Text;
  open;
end;
回首來時路 也無風雨也無晴~~@.@ 發表人 - T.J.B 於 2002/10/03 11:34:36
< >< >
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-03 12:03:26 IP:61.220.xxx.xxx 未訂閱
不要用Parameters.ParamByName('String1').Value  這樣一定可以
With ADOQuery1 do
begin
 Close;
 SQL.Clear;
 SQL.Add('Select * from Notebook');
 SQL.Add('Where Titile like'''  Edit2.Text '''%');
  open;
end;
回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
Sei
一般會員


發表:22
回覆:38
積分:17
註冊:2002-05-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-03 13:09:17 IP:61.30.xxx.xxx 未訂閱
感謝前輩,ok了! 只是……為什麼不能用Parameters.ParamByName('String1').Value 真是奇怪呢! 謝謝您撥空回答我的問題~謝謝    
引言: 不要用Parameters.ParamByName('String1').Value 這樣一定可以
With ADOQuery1 do
begin
 Close;
 SQL.Clear;
 SQL.Add('Select * from Notebook');
 SQL.Add('Where Titile like'''  Edit2.Text '''%');
  open;
end;
回首來時路 也無風雨也無晴~~@.@
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-03 13:57:29 IP:61.220.xxx.xxx 未訂閱
因為當你要用 Parameters.ParamByName('String1').Value 的程式時 你的sql語法一定有用到 SQL.Add('Where Titile like :String1'); 如果你的like是用'='符號時此寫法絕對沒問題也就是 SQL.Add('Where Titile = :String1'); 但是因為是用like 所以Sql語法一定要加'%'符號在變數:String1後面 可是如此一來 sql就不知道'%'符號到底是sql語法 還是變數名稱的一部份所以就查不到資料 所以 每次我遇到這種問題時 都改用 SQL.Add('Where Titile like''' Edit2.Text '''%'); 這樣就沒問題了 回首來時路 也無風雨也無晴~~@.@ 發表人 - T.J.B 於 2002/10/03 13:58:44
------
天行健
君子當自強不息~~@.@
Sei
一般會員


發表:22
回覆:38
積分:17
註冊:2002-05-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-03 14:05:01 IP:61.30.xxx.xxx 未訂閱
原來如此,謝謝前輩的指點! 如果沒有上來post這邊,如果沒有您回文,我看我這輩子都一直在Parameters.ParamByName裡打轉,再次感謝您!    
引言: 因為當你要用 Parameters.ParamByName('String1').Value 的程式時 你的sql語法一定有用到 SQL.Add('Where Titile like :String1'); 如果你的like是用'='符號時此寫法絕對沒問題也就是 SQL.Add('Where Titile = :String1'); 但是因為是用like 所以Sql語法一定要加'%'符號在變數:String1後面 可是如此一來 sql就不知道'%'符號到底是sql語法 還是變數名稱的一部份所以就查不到資料 所以 每次我遇到這種問題時 都改用 SQL.Add('Where Titile like''' Edit2.Text '''%'); 這樣就沒問題了 回首來時路 也無風雨也無晴~~@.@ 發表人 - T.J.B 於 2002/10/03 13:58:44
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-10-23 21:29:32 IP:61.59.xxx.xxx 未訂閱
引言: 請教各位前輩: ACCESS裡是不是不可以下LIKE呢?因為我發現下了LIKE語法都查不到資料,如下 With ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Select * from Notebook'); SQL.Add('Where Titile like :String1'); Parameters.ParamByName('String1').Value := '%' Edit2.Text; end; 那個%不管我加前加後,前加後不加或前不加後加都查不出資料 不信邪進到ACCESS裡查,一樣? 那,我要下什麼語法才能模糊查詢呢?
Access 裡的SQL 語法下Like ,萬用字元是「*」,而不是「%」吧 這樣子當然是查不到的 噓~~~~~~沉思中…
系統時間:2024-11-22 15:27:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!