全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1289
推到 Plurk!
推到 Facebook!

ComboBox的問題?

尚未結案
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-01 22:39:52 IP:210.68.xxx.xxx 未訂閱
請問各位大大: 請問ComboBox1->Text能把一個字串分別取裡面的字嗎? 例如:我打了王大寶,可不可以只取王來查詢? 發表人 - Gemi0305 於 2003/10/01 22:50:24
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-01 22:53:22 IP:61.224.xxx.xxx 未訂閱
請再多做說明, 很不清楚你的問題的意思~??  國泰平安
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-01 23:04:55 IP:210.68.xxx.xxx 未訂閱
其實是我想打一個字,然後就去查資料庫裡相似的資料,然後打兩個字,去搜尋與這兩個字相似的資料,以此類推,請問大大有辦法這樣做嗎?
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-01 23:11:22 IP:61.224.xxx.xxx 未訂閱
你有試過 DBComboBox嗎?? 在Data Controls那頁的元件裡面, 用這個去連你的資料庫,應該就可以直接search了 國泰平安
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-01 23:34:56 IP:210.68.xxx.xxx 未訂閱
可是我在DBCombox1上不能輸入資料,這樣我就不能下達查詢指令。請問大大要如何解決呢?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-01 23:43:02 IP:203.204.xxx.xxx 未訂閱
nieo, 您好 請試試以下的code,看看是否符合您的需求?  
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
   Query1->Close();
   Query1->SQL->Clear();
   Query1->SQL->Text = "select * from TableName where Filed like '" ComboBox1->Text "%' ";
   Query1->Open();
   ComboBox1->Items->Clear();
   Query1->First();
   while(!Query1->Eof)
   {
      ComboBox1->Items->Add(Query1->FieldByName("Field")->AsString);
      Query1->Next();
   }
}
// TableName為您要查詢的Table名稱,Field為您要查詢的欄位名稱。
 
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-01 23:50:08 IP:210.68.xxx.xxx 未訂閱
大大您好: 我之前有寫過這段程式碼,可是向我輸入葉,他就會直接跳到葉XX,然後在新增一筆葉XX在ComboBox1的Item裡,請問要如何解決呢?而且我當初的想法是能輸入一個字,便找跟他相似的資料,如輸入王,就可以找到王老五,王大海,輸入兩個字,如王老,就會找到王老五,王老六,請問大大要如何解決呢?
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-01 23:50:59 IP:61.224.xxx.xxx 未訂閱
資料庫高手出現@@
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-02 00:02:23 IP:61.229.xxx.xxx 未訂閱
請改: 在Delphi需先Use StdCtrls。    Query1.SQL.Text := "select * from TableName where Filed like '"+LeftStr(ComboBox1.Text,2) "%' "; LeftStr擷取字串前2字元的函數。 不好意思,沒有BCB,請各位先進幫忙轉。 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-10-02 00:05:34 IP:203.204.xxx.xxx 未訂閱
nieo, 您好 先釐清一下您的問題, (1)您是要將搜尋到的資料新增到ComboBox裡, (2)還是希望資料庫裡的資料先存在ComboBox裡, 而您輸入查詢的部分資料, 就可以跳到相關的第一筆資料。    不知您的問題是哪一個?< > > 不要錯估高手二字喔< > ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-10-02 00:50:53 IP:210.68.xxx.xxx 未訂閱
版主大大: 其實我是要做類似網路上姓名的搜尋,打一個字就能找到粉多筆姓名,然後在加字逐漸找到我要的名子,請問大大這用ComboBox可以完成嗎?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-10-02 01:21:09 IP:203.204.xxx.xxx 未訂閱
nieo, 您好 請試試以下的Code,但是有個缺點,就是必須再用滑鼠將ComboBox1下拉,才可以看到結果。  
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Query1->Close();
   Query1->SQL->Clear();
   Query1->SQL->Text = "select Field from TableName ";
   Query1->Open();
   Query1->First();
   ComboBox1->Items->Clear();
   while(!Query1->Eof)
   {
      ComboBox1->Items->Add(Query1->FieldByName("Field")->AsString);
      Query1->Next();
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
   for(int i = 0; i < ComboBox1->Items->Count; i  )
   {
      if(ComboBox1->Text == ComboBox1->Items->Strings[i])
         break;
   }
}
//---------------------------------------------------------------------------
 
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-10-02 02:00:00 IP:210.68.xxx.xxx 未訂閱
版主大大: 您這段程式碼是先把所有資料都先輸入到ComboBox哩,可是我想的是讓使用者先輸入資料,然後在查詢,向我輸入葉,然後下拉式選單裡都是姓葉的人,然後使用者也可以輸入兩個字來查詢,請問這有辦法做嗎?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-10-02 09:59:55 IP:61.221.xxx.xxx 未訂閱
引言: 版主大大: 您這段程式碼是先把所有資料都先輸入到ComboBox哩,可是我想的是讓使用者先輸入資料,然後在查詢,向我輸入葉,然後下拉式選單裡都是姓葉的人,然後使用者也可以輸入兩個字來查詢,請問這有辦法做嗎?
nieo, 您好 您這個需求,用我第一次回覆的code就可以做到,不知您是否有測試過?還是測試後有什麼問題? 因為我沒有做ComboBox自動下拉的動作,必須您輸入查詢條件後,再用滑鼠去做下拉的動作。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nieo
一般會員


發表:32
回覆:56
積分:17
註冊:2003-07-25

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-10-02 10:30:26 IP:210.68.xxx.xxx 未訂閱
版主大大: 我打了第一段程式碼後,當我輸入一個字的時候是沒有問題,兩個字的時候也OK,可是當我輸入三個字的時候,按下ENTER鍵(我是用新注音),結果那個名會像這樣出現,假使我打王大毛,ComboBox的Text會變成"大毛王大毛",請問大大這要如何解決呢?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-10-02 12:41:57 IP:61.221.xxx.xxx 未訂閱
nieo, 您好 或許您可以將code寫在ComboBox不同的Event試試看, 例如:OnDropDown、OnKeyDown......等等。    ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
系統時間:2024-05-15 10:03:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!