iT邦幫忙

0

vb2005,縣市和地區做combobox連結

vb

大家好,
我們現在在VB2005專案裡做會員的基本資料頁面
我們地址要用2個combobox分別下拉出縣市和地區帶出郵遞區號

我們第1個縣市的combobox可以下拉(台北市,台北縣...),但第2個下拉無法依第1個combo篩選做相關繫結,所以還是顯示全台灣的地區

在 form_load裡我們設定縣市combobox1(ccbCity)程式碼:
Dim cmdLiming As New OleDbCommand("SELECT distinct[縣市] FROM 郵遞區號資料表 ", cn) //在郵遞區號資料表挑出相異的縣市
ds.Load(drLiming, LoadOption.OverwriteChanges, "郵遞區號資料表")
cbbCity.DisplayMember = "郵遞區號資料表.縣市" //在第一個縣市的combobox1顯示出全台灣縣市
cbbCity.DataBindings.Add("text", ds, "郵遞區號資料表.縣市")

在第1個combobox1(cbbCity)的click事件下寫combox2(cbbArea):
cbbCity.DataSource = ds
cbbArea.DisplayMember = "地區.地區"
cbbArea.DataBindings.Add("text", ds, "地區.地區")

我們不清楚第2個combobox2如何和combobox1做關聯
我們研究很久了但是解不出來
請問這2段程式是哪裡錯誤了嗎?

謝謝~

2 個回答

22
魯大
iT邦高手 1 級 ‧ 2008-06-28 09:10:06
最佳解答

在做這個動作之前有幾點需先注意
一、你在你的資料庫裡是否有相關的關聯性
「郵遞區號資料表」與「地區」是否有相對應的欄位,若是沒有,那要怎麼串起來..

二、combox2的篩選條件是什麼??
你並沒有提出你在combox1做click之後,對combox2欲binding的內容值所做的篩選條件是什麼?? 是否有加入 where的條件值?? 而這個條件值是否跟combox1有關??

若是你有滿足上面所提的第一個條件
一般我都是用dropdownlist
在第一個時不加where做條件篩選
在第二個做聯動,就必需加上where做條件篩選
你只需在設定資料來源時,在select條件選擇where並讓主鍵值「=」control
並選擇control的物件就行啦..

以上提供給你做參考..

12
jamesjan
iT邦高手 1 級 ‧ 2008-06-29 10:03:36

在 combobox1 onclick event 中並沒有看到你針對 combobox1 的 value 進行 filter 的動作,你只是單純的將 ds 指定給 datasource
這個 ds 的內容是什麼?問題應該就在那邊

我要發表回答

立即登入回答