VB中多级下拉列表的实现

发表于:2007-07-14来源:作者:点击数: 标签:
当需要在大量记录的数据表中定位某个记录时,为了操作方便,我们通常采用多级下拉列表的实现方式。比如我们要搜寻人事处的一个叫“黎明”的个人信息,可先在单位下拉选单中定位人事处,从而下拉出人事处的人员名单列表,最终找到“黎明”的个人信息。实现步
  当需要在大量记录的数据表中定位某个记录时,为了操作方便,我们通常采用多级下拉列表的实现方式。比如我们要搜寻人事处的一个叫“黎明”的个人信息,可先在单位下拉选单中定位人事处,从而下拉出人事处的人员名单列表,最终找到“黎明”的个人信息。实现步骤:


  取单位名称表(DWMCB)中的部门编号,产生一级下拉列表。


  根据操作者的选择,从人员名单表(RYMDB)中筛选出相应部门中的所有员工,创建二级下拉列表。


  从二级列表中,定位个人信息。


  程序如下:


   ...


  Private Sub Form_Load()


  Dim str1 As String


  ‘建立连接串


  conn$="UID=caiwu;PWD=67786787;DATABASE=cwxxk; SERVER=NWIEEIC;DRIVER={SQL SERVER};DSN=‘‘;"


  en.rdoEnvironments(0).CursorDriver = rdUseServer


  ‘建立连接


  Set cn = en.rdoEnvironments(0).OpenConnection("", rdDriverNoPrompt, False, conn$)


  ‘从单位名称表中取部门编号,并创建一级部门列表


  Set rs = cn.OpenResultset("select dwbh,dwmc from dwmcb")


  Do While Not rs.EOF


  List1.AddItem rs("dwbh")


  rs.MoveNext


  Loop


  rs.Close


  End Sub


  ‘创建一级列表的点击事件


  Private Sub List1_Click()


  gdwbh = List1.Text


  ‘调用产生二级列表的程序


  getbmry List1.Text


  End Sub


  ‘产生二级列表


  Sub getbmry(strbm As String)


  Dim ssql As String


  ‘从rymdb中筛选出一级列表中选中的单位中的人员姓名,用于创建二级列表


  ssql = "select zgxm from gzmxk3 where dwbh=" && "‘" && strbm && "‘;"


  Set rs = cn.OpenResultset(ssql, rdOpenKeyset)


  List2.Clear


  Do While Not rs.EOF


  List2.AddItem rs("zgxm")


  rs.MoveNext


  Loop


  rs.Close


  End Sub

原文转自:http://www.ltesting.net