當需要在大量記錄的數據表中定位某個記錄時,為了操作方便,我們通常采用多級下拉列表的實現方式。比如我們要搜尋人事處的一個叫“黎明”的個人信息,可先在單位下拉選單中定位人事處,從而下拉出人事處的人員名單列表,最終找到“黎明”的個人信息。實現步驟:
取單位名稱表(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