請問一個有關combobox取資料庫值的問題 |
答題得分者是:st33chen
|
jokesmile
一般會員 發表:5 回覆:9 積分:2 註冊:2007-11-08 發送簡訊給我 |
大人是這樣的:
我有一個table1 有兩個欄位 欄位一是物品編號,欄位二是物品群組 其中物品編號第三碼至第四碼 02代表電腦用品 05代表雜項物品 欄位一 欄位二 (物品編號) (物品群組) - - - - - - - - - -- - - abb02*** 電腦用品 abb02*** 電腦用品 abb02*** 電腦用品 abb05*** 雜項物品 abb05*** 雜項物品 而我現在想用query 來表欄位資料放入combobox裡的item 如下, 02 | 辦公室用品 05 | 雜項物品 當點擊以上的item後,item的前兩碼就會傳到 傳到edit.text中 請問各位大大有辦法嗎???? http://delphi.ktop.com.tw/board.php?cid=30&fid=100&tid=55130 我已用這樣的方式把item加入,但是 sql語句我總是調不出來我要的 感激不盡 編輯記錄
jokesmile 重新編輯於 2008-02-19 22:04:27, 註解 無‧
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-02-20 06:55:59, 註解 無‧
|
jokesmile
一般會員 發表:5 回覆:9 積分:2 註冊:2007-11-08 發送簡訊給我 |
可是那個人不是我阿
procedure TForm1.ComboBox1Change(Sender: TObject); begin Query1.Close; Query1.DisableControls; ComboBox1.Clear; Query1.SQL.Clear; Query1.SQL.Add('SELECT DISTINCT 物品名稱,物品編號 FROM table1 like ' '''' edit2.text '''' '%'); Query1.Open; while not Query1.Eof do begin ComboBox1.Items.Add(Query1.FieldByName('ID').AsString); Query1.Next; end; ComboBox1.ItemIndex := 0; Query1.Close; Query1.EnableControls; end; |
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
|
jokesmile
一般會員 發表:5 回覆:9 積分:2 註冊:2007-11-08 發送簡訊給我 |
大人 我不是很了解
因為 其實最主要的是 combobox裡列出不同的物品群組,再由隔壁的字串點及此物品代表的編號 裡面的02就是電腦用品 05就是雜項物品 abb02*** 電腦用品 abb02*** 電腦用品 abb02*** 電腦用品 abb05*** 雜項物品 abb05*** 雜項物品 我就是希望 點選電腦用品時,edit2.text 便會出現得到此項物品的代表編號 但是若我用這個 select 子句的話 'SELECT DISTINCT 物品名稱,物品編號 FROM table1 like ' '''' edit2.text '''' '%' 把結果加入combobox裡,combobox出現結果會變成 02|電腦用品 02|電腦用品 02|電腦用品 05|雜項物品 05|雜項物品 但我想要的結果是: 02 | 辦公室用品 05 | 雜項物品 當點擊以上的item後,item的前兩碼就會傳到 傳到edit.text中 請問各位大大有辦法嗎???? |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
步驟1. 產生combobox裡的item
oracle : select distinct substr(物品編號,4,2) || '|' || 物品群組 as itemname from table1 access : select distinct substr(物品編號,4,2) & '|' & 物品群組 as itemname from table1 然後把值一一放入 combobox 中. 步驟2. 點選 combobox 的 item 把前兩碼放入 edit1 combobox 的 onclick 事件 中寫入 edit1.text := copy(combobox1.Items[combobox1.itemindex],1,2); 不知是否為您所想要的, 謝謝
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
抱歉,誤會您了.
不知是否是您要的,如果能更了解您的意思就好了。 'SELECT DISTINCT 物品名稱,物品編號 FROM table1 where 物品編號 like ' '"' edit2.text '%' '"' ); AdoQuery1.Open; while not AdoQuery1.Eof do begin // // edit1 依 combobox選取 顯示 05 procedure TForm1.ComboBox1Change(Sender: TObject); begin edit1.Text := copy(combobox1.Items[combobox1.itemindex],1,2); end; // 您的問題是 輸入 abb02 or abb05 (您用Like) procedure TForm1.FormCreate(Sender: TObject); begin edit2.Text := 'abb0'; end; 附一個Demo給你 http://delphi.ktop.com.tw/download.php?download=upload/47bbd589545a0_test.zip
------
努力會更接近成功 |
weimingyu
一般會員 發表:0 回覆:7 積分:6 註冊:2004-10-11 發送簡訊給我 |
小弟比較笨 想法比簡單
希望大哥們多多指教 目前看到很多大哥的寫法 應該都是使用者要的 而使用者為什麼還會有問題小弟就在想就在想會不會沒有搞清楚使用者真的想要什麼 而改一個程式時小弟會先了解到發問者到底想要什麼功能才會動手去修改程式 看題目來說使用者想要說的是 當選擇COMBOBOX的內容時要 將代碼 帶到EDIT內 而TABLE 只有二個欄位要這麼做 如果是常態要用的欄位為什麼不直接 建一個新的就好了 ..要讓程式每次都去抓呢 所以小弟做法會是 產品名稱 物品群組 群組代碼 abb02*** 電腦用品 02 abb02*** 電腦用品 02 abb02*** 電腦用品 02 abb05*** 雜項物品 05 abb05*** 雜項物品 05 一開就先將資料全都抓到COMBOBOX內 ADOQuery1.Close; ADOQuery1.SQL.Text:='Select 群組代碼,物品群組 From 產品資料 WHERE 群組代碼 IS NOT NULL GROUP BY 群組代碼 ORDER BY 群組代碼 ASC'; ADOQuery1.Open; while Not ADOQuery1.Eof do begin ComboBox11.Items.Add(ADOQuery1.FieldByName('群組代碼').AsString ':' ADOQuery1.FieldByName('群組名稱').AsString); ADOQuery1.Next; end; 這樣你的資料只會有 02:電腦用品 05:雜項物品 在來 當你在改變COMBOBOX時 IF COMBOBOX.TEXT='02:電腦用品' THEN EDIT.TEXT='02' IF COMBOBOX.TEXT='05:雜項物品' THEN EDIT.TEXT='05' 以上是小弟的一些想法 還請大哥們多多指教..^^ |
jokesmile
一般會員 發表:5 回覆:9 積分:2 註冊:2007-11-08 發送簡訊給我 |
|
忘了
一般會員 發表:0 回覆:2 積分:0 註冊:2008-02-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |