ad

《Excel VBA+SQL数据管理与应用模板开发》_7.4.4 根据合同号提取重要的相关数据

网友投稿 117 2023-11-07

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

7.4.4 根据合同号提取重要的相关数据

当输入了合同号后,就可以将该合同号对应的合同名称、供货商代码(开票单位代码)、 供货商名称(开票单位)、已经开票总金额提取出来,显示到相应的控件中,因此需要为“合 同号”复合框设置 Change 事件。程序代码如下:

Private Sub 合同号_Change(

Dim rs As ADODB.Recordset

《Excel VBA+SQL数据管理与应用模板开发》_7.4.4 根据合同号提取重要的相关数据

Dim SQL As String

On Error Resume Next

'获取合同基本信息

Set rs =New ADODB.Recordset

SQL="select*from [合同信息$]where 合同号="&合同号.Value&"""

rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic

合同名称.Value =rs!合同名称

单位代码.Value =rs!供货商代码

开票单位.Value =rs!供货商名称

合同额显示.Caption=” (合同额:"&Format(rs!合同额,",##0.00")&")”

'汇总该合同的开票金额

Set rs =New ADODB.Recordset

SQL="select sum(含税总价)as aa from[发票信息$]"_

&"where 合同号="&合同号.Value&"""

rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic

已开票金额显示.Caption="(已开票额:"& Format(rs!aa,"#,##0.00")&")"

rs.Close

Set rs =Nothing

On Error GoTo 0

End Sub

输入开票日期和入票日期

开票日期和入票日期的输入是通过专门的输入日期小窗口完成的,也就是通过单击文本

框旁边的小按钮来快速输入日期。程序代码如下:

Private Sub 输入开票日期_Click0

输入日期.Show

开票日期.Value =日 期

End Sub

Private Sub 输入入票日期_Click0

输入日期.Show

入票日期.Value= 日期

End Sub

以会计格式显示发票金额

在文本框中输入发票金额时,数字看起来比较费劲,因此需要为含税总价文本框设置 Change 事件,当输入金额数字时,在“含税总价显示”标签中以会计格式显示数字。程序代 码如下:

Private Sub 含税总价_Change)

含税总价显示.Caption=Format (含税总价.Value,"#,##0.00")

End Sub

新建发票信息

单击“新建”按钮,即可将窗口恢复到初始化状态,准备输入新的发票信息。程序代码如下:

Private Sub 新建_Click0

Call 重置窗口

End Sub

保存发票信息

单击“保存”按钮,即可将在窗口中输入的发票信息保存到工作表。程序代码如下:

Private Sub 保存_Click0

Dim n As Integer

'判断数据是否完整

保存发票信息

单击“保存”按钮,即可将在窗口中输入的发票信息保存到工作表。程序代码如下:

Private Sub 保存_Click0

Dim n As Integer

'判断数据是否完整

If 合同号.Value=""Or 合同号.Value ="--选择合同号--"

Or 合同名称.Value=""Or Or 开票日期.Value=""Or Or含税总价.Value=""Or

单位代码.Value=""Or 开票单位.Value =""_

入票日期.Value=""Or 发票号.Value =""

税率.Value=""Or 税率.Value="-- 选择税率--" Then

MsgBox"数据不全!请检查完善数据!"vbCritical,” 警告"

Exit Sub

End If

'判断日期是否符合逻辑:入票日期必须晚于开票日期

If入票日期.Value <开票日期.Value Then

MsgBox"人票日期不能早于开票日期!请检查数据!"vbCritical," 警告"

Exit Sub

End If

'保存数据

With wsInv

n=.Range("A10000").End(xIUp).Row+1

.Range("A"&n)= 合同号.Value

.Range("B"&n)= 合同名称.Value

.Range("C"&n)= 单位代码.Value

.Range("D"&n)= 开票单位.Value

.Range("E"&n)= 开票日期.Value

.Range("F"&n)= 入票日期.Value

.Range("G"&n)= 发票号.Value

.Range("H"'&n)= 含税总价.Value

.Range("I"&n)= 税率.Value

.Range("J"&n)= 备注.Value

End With

MsgBox"数据保存成功!"vbInformation +vbOKOnly,"保存"

恢复窗口初始化界面,准备输入新的发票信息

Call 重置窗口

End Sub

查询发票信息

单击“查询”按钮,即可打开一个“发票查询”窗口,在此窗口中设置查询条件进行查询, 然后将查询到的发票数据输入主窗口。程序代码如下:

Private Sub 查询_Click0

发票查询.Show 0

End Sub

查询窗口的设计将在后面进行介绍。

修改发票信息

单击“修改”按钮,即可将指定的发票信息进行修改并保存,这里是以发票号为关键词 进行修改的。程序代码如下:

Private Sub 修改_Click0

'判断是否有需要修改的发票号

If 发票号.Value =""Then

MsgBox" 没有要修改的发票信息!"vbCritical,"警告"

Exit Sub

End If

弹出警告框,确认是否修改

If MsgBox("下面将修改指定发票的信息。确认修改吗?"vbQuestion+vbYesNo," 警告")= vbNo Then Exit Sub

'保存修改的数据

With wsInv

n=WorksheetFunction.Match (发票号.Value,.Range("G:G"),0)

.Range("A"&n)= 合同号.Value

.Range("B"&n)= 合同名称.Value

.Range("C"&n)= 单位代码.Value

.Range("D"&n)= 开票单位.Value

.Range("E"&n)= 开票日期.Value

.Range("F"&n)= 入票日期.Value

.Range("G"&n)= 发票号.Value

Range("H"&n)= 含税总价.Value

.Range("I"&n)= 税率.Value

.Range("J"&n)= 备注.Value

End With

MsgBox"数据修改成功!"vblnformation +vbOKOnly,"修改"

'恢复窗口初始化界面,准备输入新的发票信息

Call 重置窗口

End Sub

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

上一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.3.1 分代收集理论
下一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_4.6 环境数据表
相关文章

 发表评论

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

×