ad

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_7.3 合同信息管理

网友投稿 127 2023-11-07

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

7.3 合同信息管理

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_7.3 合同信息管理

合同信息是合同管理的核心模块之一,签订的每个合同都必须记录下翔实准确 的合同信息数据,包括合同号、合同名称、合同金额、供货商、供货产品、付款方式、 签订日期、交货日期和付款方式等。对这些信息数据的管理和维护是通过一个窗口 界面完成的,不允许在工作表上操作,如插入行、删除行等,否则会把重要的表单 搞得很乱。

合同信息录入界面结构

合同信息录入窗体的结构如图7-19所示,其名称和Caption均为“合同信息”。窗体的 各个控件说明如表7-4所示。

启动并初始化窗口

为窗体设计以下的初始化程序。

Dim cnn As New ADODB.Connection

Dim wsCon As Worksheet

Dim wsSup As Worksheet

Dim Ctr As Variant

Private Sub UserForm_Initialize)

'指定工作表对象

Set wsCon =ThisWorkbook.Worksheets("合同信息")

Set wsSup=ThisWorkbook.Worksheets("供货商信息")

wsCon.Select '显示合同信息表

'建立与工作簿的ADO 连接

With cnn

.Provider ="microsoft.ace.oledb.12.0"

.ConnectionString="Extended Properties=Excel 12.0;"

&"Data Source="&ThisWorkbook.FullName

.Open

End With

'为供货商名称复合框设置项目

With 供货商名称

.RowSource=" 供货商信息!B2:B"&wsSup.Range("B10000"),End(xIUp).Row .Value ="--选择供货商--"

End With

'锁定合同号文本框,签订日期和交货日期,并把焦点移到合同名称文本框 签订日期.Locked =True

交货日期.Locked =True

合同号.Locked =True

合同名称.SetFocus

'构建控件数组

Ctr=Array("合同号","合同名称","供货商代码","供货商名称","供货产品","合同额", “签订日期”,“交货日期”,”备注”)

End Sub

7.3.3 自动编制合同号

合同号是根据合同的签订日期自动编制的,这样可以保证合同号的唯一性。当选择输入 合同签订日期后,单击“自动编号”按钮,就完成了新合同的编号。程序代码如下:

Private Sub自动编号_Click0

Dim m As Integer

'判断是否输入了签订日期

If签订日期.Value =""Then

MsgBox"没有输入签订日期!请先输入签订日期,然后再单击此按钮!"vbCritical, "警告"

签订日期.SetFocus

Exit Sub

End If

'获取已经存在的最大合同号,并编制新的号码

Dim rs As New ADODB.Recordset

Dim SQL As String

SQL="select max(1*right(合同号,3))as aa from[合同信息$]"_

&"where 合同号like'CG-"&Format (签订日期.Value,"yyyymm")&"%'"

rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic

m=IHf(IsNull(rs!aa),0,rs!aa)+1

合同号.Value="CG-"&Format (签订日期.Value,"yyyymm-")&Format(m,"000")

rs.Close

Set rs =Nothing

End Sub

7.3.4 输入签订日期和交货日期

签订日期和交货日期不能是错误的格式,为此设计一个专门用来输入日期的小窗口(详 见第6章6.3.3小节介绍)。

输入签订日期和交货日期是通过单击日期文本框旁边的小按钮完成的。程序代码如下:

Private Sub 输入签订日期_Click0

输入日期.Show

签订日期.Value= 日期

End Sub

Private Sub 输入交货日期_Click0

输入日期.Show

交货日期.Value= 日期

End Sub

特别需要注意的是,这里在一个模块里定义了一个公共变量。

Public 日期 As Date

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.4 HotSpot 的算法细节实现
下一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_5.1 条件语句
相关文章

 发表评论

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

×