当前位置:编程学习 > VB >>

求一实例 关于实现两个combox之间的联动.

求一实例  关于实现两个combox之间的联动.
现有combox1  combox2 
在combox1 选“广东”   combox2里面要显示“广州”、“深圳”、“珠海”等...  
在combox1 选“广西”   combox2里面要显示“桂林”、“南宁”等....
请问如何实现?
Option Explicit



Private Sub Combo1_Click()
Select Case Combo1.Text
Case "A"
Combo2.ListIndex = 0
Case "B"
Combo2.ListIndex = 1
Case "C"
Combo2.ListIndex = 2
End Select

End Sub

Private Sub Form_Load()
Combo1.AddItem "A"
Combo1.AddItem "B"
Combo1.AddItem "C"

Combo2.AddItem "1"
Combo2.AddItem "2"
Combo2.AddItem "3"
End Sub
Option Explicit

Private Sub Combo1_Click()
Select Case Combo1.Text
Case "广东"
Combo2.Clear  '清空
Combo2.AddItem "深圳"
Combo2.AddItem "广州"
Combo2.AddItem "......"
Combo2.ListIndex = 0 '选第0项
Case "广西"
Combo2.Clear
Combo2.AddItem "南宁"
Combo2.AddItem "桂林"
Combo2.AddItem "XX"
Combo2.ListIndex = 0
End Select

End Sub

Private Sub Form_Load()
Combo1.AddItem "广东"
Combo1.AddItem "广西"
End Sub
创建一个Access数据库,其中创建一个表格,表格内包含字段:FD_Sheng、FD_ChengShi
每个城市一条记录,比如;广东就可以有:
广东 广州
广东 深圳
广东 湛江
.
.
.
在数据库创建好后,查询数据库,用查询的来的FD_Sheng记录填写Combo1,形成查询条件。当你选择Combo1中的省份时,就依据这个为查询条件查询数据库,并将查询的来的FD_ChengShi记录填写Combo2即可。 刚好我昨天做了一个,一个里面选省份,另一个里面的内容就变成了所先省份内的城市名。代码如下。
Private Sub Combo1_LostFocus()
On Error GoTo comm_err   '错误处理机制
        Call user_log_check  '验证账号登录信息
        Dim i As Integer  '循环变量
        Dim strSQL As String '定义SQL字符串
        Dim rsSql As New ADODB.Recordset '定义数据集
        
    If Trim(str_filter(Combo1.Text)) = "" Then
        Exit Sub
    Else
        
        
        Combo5.Clear
        strSQL = "SELECT  distinct [city_name]FROM [TY_data_text].[dbo].[area_data] where provinces_name ='" & Trim(str_filter(Combo1.Text)) & "' "
        rsSql.Open strSQL, AdoCn, adOpenStatic '从数据库取数据到数据集
        For i = 1 To rsSql.RecordCount
            Combo5.AddItem rsSql!city_name '加载市级名称
             rsSql.MoveNext
        Next i
        rsSql.Close
    End If
    
    Exit Sub
comm_err:
End Sub
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,