当需要在大量记录的数据表中定位某个记录时,为了操作方便,我们通常采用多级下拉列表的实现方式。比如我们要搜寻人事处的一个叫“黎明”的个人信息,可先在单位下拉选单中定位人事处,从而下拉出人事处的人员名单列表,最终找到“黎明”的个人信息。实现步骤:
取单位名称表(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
……