一次解析文件2行-英雄云拓展知识分享
121
2023-11-07
【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第7章,第6节,韩小良著。
7.6 制作合同统计报表
关于合同数据管理的各个窗口已经基本设计完毕。利用这些窗口,我们可以实 现对供货商信息、合同信息、发票信息和付款信息进行科学规范的管理,使表单数 据标准化、规范化。本节我们将利用这些数据制作一些常见的、固定格式的统计报告。
制作指定条件的合同统计汇总表
这个模块是合同信息查询模块的扩展,可以设置更多的条件,并可以将查询的结果导出 为新工作簿。
1.设计窗体
设计如图7-35所示的“合同统计汇总”窗体,窗体的名称和 Caption属性均为“合同统 计汇总”,窗体中的控件及功能说明如表7-10所示。
2.为窗体设计初始化程序
窗体的初始化程序代码如下:
Dim cnn As New ADODB.Connection
Dim rss As ADODB.Recordset
Dim wsCon As Worksheet
Dim Ctr As Variant
Private Sub UserForm_Initialize)
Dim rs As ADODB.Recordset
Dim SQL As String
Dim i As Variant
'指定要查询汇总的工作表
Set wsCon=This Workbook.Worksheets("合同信息")
'构建控件数组
Ctr=Array(“供货商名称”,“供货商关键词”,"日期1”,"日期2","条件","金额1”,"金额2", "供货产品")
'重置窗口,恢复初始化
Call 重置
'建立与工作簿的连接
With cnn
Provider ="microsoft.ace.oledb.12.0"
.ConnectionString="Extended Properties=Excel 12.0;"_
&"Data Source="&This Workbook.FullName
.Open
End With
'查找不重复的供货商名称,并赋值给供货商名称复合框
Set rs =New ADODB.Recordset
SQL="select distinct 供货商名称 from[合同信息S]"
rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic
With 供货商名称
If rs.RecordCount >0 Then
Fori=1 To rs.RecordCount
.AddItem rs.Fields(0)
rs.MoveNext
Nexti
.Value ="--选择供货商--"
End If
End With
'查询不重复的签到日期,并设置给两个日期复合框
Set rs =New ADODB.Recordset
SQL="select distinct 签订日期 from[合同信息$]"
rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic
If rs.RecordCount >0 Then
Fori=1To rs.RecordCount
日期1.Addltem rs.Fields(0)
日期2.Addltem rs.Fields(0)
rs.MoveNext
Next
日期1.Value ="--选择签订日期--"
日期2.Value ="--选择签订日期--"
End If
设置条件复合框的逻辑条件
条件.List =Array("介于",">",">=","<","<=","=")
条件.Value ="介于"
'设置底部列表的标题
With ListView1
.ColumnHeaders.Clear
.ListItems.Clear
设 置ListView1格式
.FullRowSelect =True
.View=lvwReport
.Gridlines =True
添加列标题
Fori=1 To wsCon.Range("IV1").End(xIToLeft).Column
Set col =.ColumnHeaders.Add0
col.Text =wsCon.Cells(1,i)
Nexti
.ColumnHeaders(4).Width =150
End With
End Sub
3.为4个选择查询字段的选项按钮设计 Click 事件
为4个选择查询字段的选项按钮设计Click 事件,当单击某个选项按钮时,设置相应的 查询条件。程序代码如下:
Private Sub 按供货商_Click0
Call 重置
供货商名称.Enabled =True
供货商关键词.Enabled =True
供货商名称.Value="-- 选择供货商--"
End Sub
Private Sub 按日期_Click0
Call 重置
日期1.Enabled =True
日期2.Enabled =True
日期1.Value ="--选择签订日期--"
日期2.Value ="--选择签订日期--"
End Sub
Private Sub 按金额_Click0
Call 重置
条件.Enabled =True
金额1.Enabled =True
金额2.Enabled =True
End Sub
Private Sub 按供货产品_Click0
Call 重置
供货产品.Enabled =True
End Sub
这些事件调用了子程序“重置”,其代码如下:
Sub 重置0
Fori=0 To UBound(Ctr)
Me.Controls(Ctr(i).Enabled =False
Me.Controls(Ctr(i)).Value =""
Next i
条件.Value ="介于"
ListView1.ListItems.Clear
End Sub
4.为供货商关键词文本框设置 Change 事件
为了能够快速地找到需要查询的供货商名称,需为供货商关键词文本框设置Change 事件,
根据输入的供货商名称关键字进行模糊匹配查找。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~