ad

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_7.6 制作合同统计报表

网友投稿 121 2023-11-07

【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第7章,第6节,韩小良著。

7.6 制作合同统计报表

关于合同数据管理的各个窗口已经基本设计完毕。利用这些窗口,我们可以实 现对供货商信息、合同信息、发票信息和付款信息进行科学规范的管理,使表单数 据标准化、规范化。本节我们将利用这些数据制作一些常见的、固定格式的统计报告。

制作指定条件的合同统计汇总表

这个模块是合同信息查询模块的扩展,可以设置更多的条件,并可以将查询的结果导出 为新工作簿。

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_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小时内删除侵权内容。

上一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_2.4.3 Django 框架的工作机制
下一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_5.1.6 实现 switch 语句的功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×