请详解下面VB程序代码,越详细越好,在线等。谢谢好心人!

2025-03-03 19:22:49
推荐回答(1个)
回答1:

Dim conn As ADODB.Connection '定义conn为ADO连接
Dim rs As Recordset '定义rs为ADO结果集(建议写成 ADODB.Recordset,有时你同时用ADO和DAO时,这个Recordset可定被默认为DAO.Recordset)
Dim sql As String 'sql语句

Private Sub Combo8_Click() 'Combo8控件选择项目被改变的事件
Dim sql As String '过程内部的sql语句
'拼接查询语句
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\SBGL.MDB;Persist Security Info=False" 'ADO建立连接,引擎为Microsoft,jet.OLEDB.4.0;数据源为程序(或工程)所在路径下的SBGL.MDB
sql = "select distinct " & Combo8.Text & " from 仪器表 where " & Combo8.Text & " is not null " '生成sql语句,将combo8选择的字段从《仪器表》(数据表)里提取出来,结果无重复,且不包括空内容(null)
Adodc2.RecordSource = sql '打开结果集
Adodc2.Refresh

'检索选择字段的所有值,并列出来
Combo9.Clear '清除Combo9的列表内容

If Adodc2.Recordset.RecordCount > 0 Then '判断上面的sql语句打开的结果集,所返回的记录是否有记录(是否大于0)
For i = 1 To Adodc2.Recordset.RecordCount '设定循环次数为记录的数量(RecordCount)
If Not IsNull(Adodc2.Recordset.Fields(Combo8.Text)) Then '判断Combo8所选的字段,不为空(null)
Combo9.AddItem (Adodc2.Recordset.Fields(Combo8.Text)) '将该字段内容添加至Combo9的列表中;
End If

Adodc2.Recordset.MoveNext '移至结果集的下一条记录
Next i

End If

End Sub

Private Sub Command1_Click() 'Command按钮控件的单击事件
Beep '系统声音提示(Beep)
Unload frmAppEqup (卸载frmAppEqup窗体)
Load MDIForm1 (载入MDIForm1窗体)
MDIForm1.Show (显示MDIForm1窗体)
End Sub

总的看,上面的程序是先让用户在Comb8上选择一个项目,这些项目与数据表《仪器表》字段名称对应。当用户选择Combo8上的项目时,触发其Click事件,Click事件的程序会根据这个所选项目,将《仪器表》中对应的字段内容依次添加到Combo9的列表中,并且不会出现重复项目,也不会出现空项目。