一次解析文件2行-英雄云拓展知识分享
117
2023-11-07
【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第7章,第4节,韩小良著。
7.4.4 根据合同号提取重要的相关数据
当输入了合同号后,就可以将该合同号对应的合同名称、供货商代码(开票单位代码)、 供货商名称(开票单位)、已经开票总金额提取出来,显示到相应的控件中,因此需要为“合 同号”复合框设置 Change 事件。程序代码如下:
Private Sub 合同号_Change(
Dim rs As ADODB.Recordset
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~