VBA 代码逐句翻译:从工作表中查询数据并填充列表视图
VBA 代码逐句翻译:从工作表中查询数据并填充列表视图
以下两段代码分别定义了两个名为 Addlistview2 和 Addlistview3 的公共子过程,用于从不同的工作表中查询数据,并根据查询结果填充相应的列表视图控件。
代码1:Addlistview2
Public Sub Addlistview2()
Dim sql As String, Arr As Variant
With UserForm1
sql = "select ID,货号,名称,厂家,规格型号,存放温度,单位,批号,有效期,入库人员,数量,日期,出库数量,库存数量 from [入库$] where 1=1"
If .TextBox3.Text <> "" Then
sql = sql & " and 名称 like '%" & .TextBox3.Text & "%'"
End If
If .TextBox4.Text <> "" Then
sql = sql & " and 厂家 like '%" & .TextBox4.Text & "%'"
End If
If .TextBox7.Text <> "" Then
sql = sql & " and 日期>=#" & .TextBox7.Text & "#"
End If
If .TextBox8.Text <> "" Then
sql = sql & " and 日期<=#" & .TextBox8.Text & "#"
End If
If .ComboBox1.Text <> "" Then
sql = sql & " and 入库人员='" & .ComboBox1.Text & "'"
End If
SqlOperation.SelectCommand = sql & " order by 日期 desc"
If SqlOperation.GetRstDataBoolean(Arr) Then
ListViewOperation2.DataSource = Arr
Else
ListViewOperation2.CommandButtonEnabled_False
End If
End With
End Sub
代码2:Addlistview3
Public Sub Addlistview3()
Dim sql As String, Arr As Variant
With UserForm1
sql = "select ID,货号,名称,厂家,规格型号,存放温度,单位,批号,有效期,出库人员,数量,日期,备注 from [出库$] where 1=1"
If .TextBox5.Text <> "" Then
sql = sql & " and 名称 like '%" & .TextBox5.Text & "%'"
End If
If .TextBox6.Text <> "" Then
sql = sql & " and 厂家 like '%" & .TextBox6.Text & "%'"
End If
If .TextBox10.Text <> "" Then
sql = sql & " and 日期>=#" & .TextBox10.Text & "#"
End If
If .TextBox9.Text <> "" Then
sql = sql & " and 日期<=#" & .TextBox9.Text & "#"
End If
If .ComboBox2.Text <> "" Then
sql = sql & " and 出库人员='" & .ComboBox2.Text & "'"
End If
SqlOperation.SelectCommand = sql & " order by 日期 desc"
If SqlOperation.GetRstDataBoolean(Arr) Then
ListViewOperation3.DataSource = Arr
Else
ListViewOperation3.CommandButtonEnabled_False
End If
End With
End Sub
代码逐句翻译
1. 声明变量
Dim sql As String, Arr As Variant:声明两个变量,sql用来存储查询语句,Arr用来存储查询结果。
2. 引用用户窗体
With UserForm1:引用名为 UserForm1 的用户窗体,后续代码中的操作都将作用于该用户窗体。
3. 初始化查询语句
sql = "select ID,货号,名称,厂家,规格型号,存放温度,单位,批号,有效期,入库人员,数量,日期,出库数量,库存数量 from [入库$] where 1=1":定义一个查询语句,从名为 "入库$" 的工作表中选择所有列,并添加一个 "where 1=1" 的条件,方便后续添加其他条件。
4. 添加查询条件
If .TextBox3.Text <> "" Then ... End If:如果用户窗体中的文本框 3 不为空,则将查询语句拼接上 "and 名称 like '%文本框3的文本%'",表示查询名称包含文本框 3 文本内容的记录。- 代码中其他类似
If...Then语句,分别对应文本框 4、7、8 和组合框 1 的文本,分别添加查询条件。
5. 设置排序条件
SqlOperation.SelectCommand = sql & " order by 日期 desc":将查询语句拼接上 "order by 日期 desc",表示按照日期列降序排序。
6. 执行查询并填充列表视图
If SqlOperation.GetRstDataBoolean(Arr) Then ... End If:调用SqlOperation对象的GetRstDataBoolean方法执行查询,并将查询结果存储在Arr变量中。ListViewOperation2.DataSource = Arr:将查询结果填充到名为ListViewOperation2的列表视图控件中。ListViewOperation2.CommandButtonEnabled_False:如果查询失败,则禁用列表视图控件的按钮。
7. 代码结尾
End With:结束对 UserForm1 的引用。End Sub:结束子过程。
代码 2 的逻辑与代码 1 类似,只是查询的目标工作表不同,并填充不同的列表视图控件。
总结
这两段 VBA 代码展示了如何从工作表中查询数据,并根据查询结果填充列表视图控件。代码示例包括使用条件语句、拼接 SQL 语句、操作用户窗体和列表视图控件等操作。通过学习这些代码,可以了解如何将 VBA 代码应用于数据查询和数据展示,并为实际应用开发提供参考。
原文地址: https://www.cveoy.top/t/topic/lCA2 著作权归作者所有。请勿转载和采集!