Access-控件解析-組合框-02-兩個組合框聯動

微信公衆號原文

系統:Windows 7
軟件:Excel 2010 / Access 2010

  • 這個系列介紹常用的控件
  • 包括在界面端的設置及在代碼端的實現

Part 1:本篇目標

  1. 本篇介紹的控件爲:組合框。涉及功能爲:兩個組合框聯動

功能動圖
1.gif

Part 2:實現功能

  1. 手動設置組合框下拉列表:廣東,湖南
  2. 組合框變化時,組合框下拉列表隨之變化
  3. 這裏組合框有3個事件,都引起組合框下拉列表變化,包括更改鍵按下進入三個事件。具體哪些事件會觸發,根據需要自己制定。一般來說這三種即可

界面
1.png

3類事件
2.png

Part 3:代碼

事件代碼

Private Sub cbo1_Change()
    frmName = Me.Name

    Call sMod_通用庫_01_零件名稱下拉列表(frmName)
End Sub

Private Sub cbo1_Enter()
    frmName = Me.Name

    Call sMod_通用庫_01_零件名稱下拉列表(frmName)
End Sub

Private Sub cbo1_KeyDown(KeyCode As Integer, Shift As Integer)
    frmName = Me.Name

    Call sMod_通用庫_01_零件名稱下拉列表(frmName)
End Sub

實際動作

Sub sMod_通用庫_01_零件名稱下拉列表(frmName)
    Dim ctrl
    Dim frm
    Dim ctrlName
    
    Set frm = Forms(frmName)
    
    Set ctrl = frm.Controls("cbo1")
    sheng = ctrl.Value
    
    ctrlName = "cbo2"
    Set cbo = frm.Controls(ctrlName)
    
    If sheng = "廣東" Then
        cbo.RowSource = ""
        cbo.Value = ""
        
        arr = Array("廣州", "深圳", "東莞", "佛山")
        For Each x In arr
            cbo.AddItem x
        Next
    ElseIf sheng = "湖南" Then
        cbo.RowSource = ""
        cbo.Value = ""
        
        arr = Array("長沙", "湘潭", "株洲", "郴州")
        For Each x In arr
            cbo.AddItem x
        Next
    End If
    
End Sub

代碼截圖
3.png

代碼位置:將通用代碼寫在模塊內了,方便代碼複用
4.png

Part 4:部分代碼解讀

  1. 雖然本示例中涉及3個事件,但只是觸發不一樣,但引起的結果是一樣的,所以將共用代碼寫在了模塊內
  2. frmName = Me.Name,獲取當前窗體名稱,該代碼必須放在對應的窗體中才有效

本文爲原創作品,如需轉載,可加小編微信號learningBin


更多精彩,請關注微信公衆號
掃描二維碼,關注本公衆號

公衆號底部二維碼.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章