VB 中两个combo控件怎样能一个列出数据库中的内容另一个根据上一个改变列表

2025-05-16 16:21:13
推荐回答(2个)
回答1:

me too

回答2:

给你一个提示:
就是你建立两张表,一张是省份的表,在这张表中用两个字段,一个用于存放省份的字段,比如shengfen,另一个是索引的字段,比如SID,它是用来与另一张表(城市表做连接用的)。另一张表是城市表,也有两个字段,一个是用来存放城市用的,比如chengshi.另一个是用来和前面的省份级联用的。比如CID.举个例子:
比如在省份的表中有三条记录:1(SID),浙江省(shengfen),2(SID),湖南省(shengfen),3(SID),广东省(shengfen)
然后在城市的表中有三条记录:1(CID),杭州市(chengshi),1(CID),宁波市(chengshi),2(CID),长沙市(chengshi)
最后建立一张视图,名称为SC,用来把城市和省份通过那个SCD=CID把他连接起来。(比如在视图表中肯定会有浙江省份下面就会有杭州市和宁波市跟在下面)
然后在你代码中当你在省份的下拉列表中选种了浙江省后,然后就写代码
Private Sub shengfen(省份的函数名称)() '省份的下拉框函数
rss.Open "Select distinct shengfen(省份表中的省份字段名称) From 省份表", cn(数据库的连接名称), adOpenStatic, adLockOptimistic
While Not rss(记录名称).EOF
If rss("shengfen") <> "" Then
combo1(省份的下拉列表名称).AddItem rss("shengfen")
rss.MoveNext
然后读城市的代码:
Private Sub chengshi(省份的函数名称)() '省份的下拉框函数
rss.Open "Select distinct chengshi(视图表中的城市字段名称) From SC表 where shengfen='" & combol.Text & "'", cn(数据库的连接名称), adOpenStatic, adLockOptimistic
While Not rss(记录名称).EOF
If rss("chengshi") <> "" Then
combo2.clear(用于随着省份在变的时候,城市下拉列表也能时刻更新的方法)
combo2(城市的下拉列表名称).AddItem rss("chengshi")
rss.MoveNext
Private Sub Form_Load()
shengfen
chengshi
End Sub
至于其他一些细节的问题自己注意点就行了。上述方法应该没问题的。