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

為什麼DBGrid在insert, post之後, 原本欄位設的combobox會消失?

答題得分者是:Wesly
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-17 10:27:41 IP:203.69.xxx.xxx 未訂閱
我在程式一開始時, 於DBGrid1(datasoure為ADOTable1)某一欄位設了combobox, 但我對ADOTable1執行完insert , post之後, insert的那筆資料, 並不能使用combobox的下拉式選項功能, 這是為什麼呢??? ps. 因為我需要批次新增多筆資料,欄位會帶default設定值給user, user只需要填入某一二個值即可.
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-17 10:55:21 IP:61.221.xxx.xxx 未訂閱
361002你好: 用combobox元件,他本身不具有與資料庫同步更新功能需由程式去做 combobox1.lines.add(); 它才會顯示更新的值; 因此建議你改用 DBcombobox元件!!!好唄
------
======================
昏睡~
不昏睡~
不由昏睡~
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-17 11:57:50 IP:203.69.xxx.xxx 未訂閱
我是用在DBGrid的欄位, 可以用DBGrid嗎? 要怎麼設呢?
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-17 11:58:09 IP:203.69.xxx.xxx 未訂閱
我是用在DBGrid的欄位, 可以用DBCombobox嗎? 要怎麼設呢?
cashxin2002
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-17 12:17:45 IP:63.84.xxx.xxx 未訂閱
您好﹗ 您的意思是在DBGrid元件中做出像ComboBox元件的選擇功能嗎﹖ 如是的話﹐請參考如下﹕ 1﹒雙擊DBGrid元件﹐打開其欄位編輯器 2﹒在欄位編輯器中點右鍵﹐選擇Add all Fields﹐將所有欄位加入 3﹒點擊某個欄位名﹐在其PickList屬性中輸入提供給User選擇的字串String 4﹒在專案執行時期新增或修改時﹐點擊此欄位時就可以做以選擇﹐也可自行輸入內容﹒ 努力,相信會獲得美麗! 忻晟
------
忻晟
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-17 13:09:22 IP:203.69.xxx.xxx 未訂閱
不好意思, 我可能沒有講的很清楚! 我己經用程式的方式, 動態加了combobox在DBGrid裡面了! 只是, 我做完ADOTable1.post後, 新增的那一行並不能有combobox的功能! 我在一開始時, 寫了下面這一段程式 : with DBGrid1.Columns[0].PickList do begin Clear; ADOQuery1.Close; ADOQuery1.SQL.Text := sSQLStr; ADOQuery1.Open; while not ADOQuery1.Eof do begin sBrokerId := ADOQuery1.FieldValues['broker_id']; sAccount := ADOQuery1.FieldValues['account']; sName := ADOQuery1.FieldValues['name']; Add(sBrokerId sAccount sName); ADOQuery1.Next; end; end; 然後在user選了某個按紐後 : ADOTable1.Close; ADOTable1.Open; . . . ADOQuery1.Open; while not ADOQuery1.Eof do begin ADOTable1.insert; ADOTable1.FieldByName('account').AsString := ''; ADOTable1.FieldByName('stock').AsString := sStockNo; ADOTable1.FieldByName('qty').AsString := sQty; ADOTable1.FieldByName('price').AsString := sPrice; ADOTable1.Post; ADOQuery1.Next; end; 我主要是要讓user選取第一個欄位 --> account
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-18 14:20:33 IP:211.22.xxx.xxx 未訂閱
361002您好: 在我個人感覺, 似乎您以為把ADOTable1.post之後, DBGrid1.Columns[0]的PickList可以如同資料感知般的立即更新, 這是不行的, 您必須在Post後, 重新更新DBGrid1.Columns[0]的PickList, 才可以, 您可以試試看
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-18 16:13:43 IP:203.69.xxx.xxx 未訂閱
其實我是把第一段寫成一個procedure,  所以我有試過在執行第二段時, 把第一段再執行一遍~~~ 但是.......批次新增那幾筆的"帳號"欄位都不能有 > 可是按
361002
一般會員


發表:7
回覆:18
積分:5
註冊:2003-04-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-18 18:10:38 IP:203.69.xxx.xxx 未訂閱
不好意思, 是我自己弄錯了! >
系統時間:2024-04-26 18:25:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!