台灣最大程式設計社群網站
線上人數
1814
 
會員總數:242949
討論主題:187843
歡迎您免費加入會員
討論區列表 >> ACCESS >> 下拉式連動選單無法套用至子表單
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
下拉式連動選單無法套用至子表單
價值 : 50 QP  點閱數:774 回應數:5

樓主

miranda
門外漢
0 1
14 1
發送站內信

各位先進好,近期建立資料庫時,想建立一個連動式的下拉選單,因此參考了某個範例,如下所示。該範例已在父表單測試過是沒問題的,但是套用到子表單就毫無作用,不知道錯在哪,想請各位先進予以指教,謝謝!


範例:
假設有3個客戶為aaa與bbb與ccc,3欄位之紀錄如下:
客戶別,設備分類,設備名稱
aaa,金屬類,鐵鎚
aaa,金屬類,水龍頭
aaa,塑膠類,塑膠盒
bbb,金屬類,門鎖
bbb,皮革類,皮鞋
ccc,木頭類,木門
以上共6筆資料
(1)當我下拉第一層客戶別為aaa時,我可以在第三層下拉設備名稱為鐵鎚或水龍頭或塑膠盒,
(2)當我下拉第一層客戶別為aaa時,我可以在第二層下拉金屬類或塑膠類
上述2點意即不用按順序從第一層->第二層->第三層去尋找,要找第三層,可跳過第二層....
(3)當我下拉第一層客戶ccc時,依據上述6筆資料,第二層與第三層就只有一選項可選.

方法:

表單:表單一

下拉選單:Combo1
資料來源:SELECT DISTINCT 資料表1.客戶別 FROM 資料表1;
AfterUpdate事件:
Private Sub Combo1_AfterUpdate()
Me.Combo2.Requery
Me.Combo3.Requery
End Sub

下拉選單:Combo2
資料來源:SELECT DISTINCT 資料表1.設備分類 FROM 資料表1 WHERE (((資料表1.客戶別) Like Forms!表單1!Combo1 & "*"));
AfterUpdate事件:
Private Sub Combo2_AfterUpdate()
Me.Combo3.Requery
End Sub

下拉選單:Combo3
資料來源:SELECT DISTINCT 資料表1.設備名稱 FROM 資料表1 WHERE (((資料表1.客戶別) Like Forms!表單1!Combo1 & "*") And ((資料表1.設備分類) Like Forms!表單1!Combo2 & "*"));

搜尋相關Tags的文章: [ 下拉式連動選單 ] , [ 子表單 ] ,
本篇文章發表於2016-11-11 18:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

Roger
檢舉此回應
子表單的COMBO 寫法
FORMS![父表單]![子表單]![COMBO1].REQUERY

或是要洗子表單
FORMS![父表單]![子表單].REQUERY

希望對您有幫助.
本篇文章回覆於2016-11-11 23:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

羅伯斯
檢舉此回應
要在表單Form_Current()及_第一層客戶別的AfterUpdate()事件中加入相同的程式碼
如:

本篇文章回覆於2016-11-11 23:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

羅伯斯
檢舉此回應
呵呵...2樓程式碼是先前某位會員朋友的問題所給的部份解答,別理它
請看以下的程式碼

表單Form_Current()事件的作用,在當紀錄指標移動時(如到下一筆或到上一筆),可以依據客戶別下拉式選單的內容,重新設定第二層及第三層選單的資料來源
第一層客戶別的AfterUpdate()事件的作用,在當第一層客戶別下拉式選單內容有變動時,依據變動後的內容,重新設定第二層及第三層選單的資料來源
本篇文章回覆於2016-11-12 00:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

miranda
檢舉此回應
感謝Roger 及 羅伯斯的指教:D
本篇文章回覆於2016-11-14 15:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Diane Huang
檢舉此回應
你好,我也遇到同樣的問題
在表單確定可以連動,可是放到子表單就會出現錯誤

Roger和羅伯斯兩位的說明,請問要再哪裡改?
是VBA的部份嗎?
本篇文章回覆於2018-01-25 15:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.