一次解析文件2行-英雄云拓展知识分享
129
2023-11-07
【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第7章,第5节,韩小良著。
7.5.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!供货商名称
合同额=rs!合同额
'汇总该合同的付款金额
Set rs =New ADODB.Recordset
SQL="select sum(付款金额)as aa from[付款信息$]"_
&"where 合同号="&合同号.Value&"""
rs.Open SQL,cnn,adOpenKeyset,adLockOptimistic
已付金额=rs!aa
合同额显示.Caption="(合同额:"&Format(合同额,"#,##0.00")&")"
付款金额.Value =""
付款情况显示.Caption ="本次付款:"_
&Space(14-Len(Format(Val(付款金额.Value),"#,##.0.00")_
&Format(Val(付款金额.Value),"#,##.0.00")_
&vbCrLf&"已付金额:"&Space(14-Len(Format(已付金额,"#,##0.00"))_ &Format(已付金额,"#,##0.00")_
&vbCrLf&" 剩余未付:"&Space(14-_
Len(Format(Val(合同额)-Val(已付金额)-Val(付款金额.Value),"#,##0.00"))_ &Format(Val(合同额)-Val(已付金额)-Val(付款金额.Value),"#,##0.00")
If Val(合同额)=Val(已付金额)Then
付款标记.Value =""
Else
付款标记.Value= 合同号.Value&"-"_
&WorksheetFunction.CountIf(wsPay.Range("A:A"),合同号.Value)+1
End If
rs.Close
Set rs =Nothing
On Error GoTo 0
End Sub
输入付款日期
付款日期的输入是通过专门的输入日期小窗口完成的,也就是通过单击文本框旁边的小
按钮来完成的。程序代码如下:
Private Sub 输入付款日期_Click0
输入日期.Show
付款日期.Value =日期
End Sub
根据付款金额计算相关数据
为“付款金额”文本框设置Change 事件,当输入本次付款金额时,进行相关的计算, 在窗口中显示提示信息。程序代码如下:
Private Sub 付款金额_Change)
If 查询开关=True Then Exit Sub ‘如果查询窗口处于打开状态,就退出程序
'判断付款总额是否大于合同额
If Val(合同额)-Val(已付金额)-Val(付款金额.Value)<0 Then
If MsgBox("总付款额已超过合同额!是否继续输入?"_
vbQuestion+vbYesNo+vbDefaultButton2,"警告")=vbNo Then
付款金额.Value="n
Exit Sub
End If
End If
'显示付款情况
付款情况显示.Caption=" 本次付款:"_
&Space(14-Len(Format(Val(付款金额.Value),"#,##0.00"))_
&Format(Val(付款金额.Value),"#,##0.00")_
&vbCrLf&" 已付金额:"&Space(14-Len(Format (已付金额,"#,##0.00"))_ &Format(已付金额,"#,##0.00")_
&vbCrLf&" 剩余未付:"& Space(14-_
Len(Format(Val(合同额)-Val(已付金额)-Val(付款金额.Value),"#,##0.00"))_ &Format(Val(合同额)- Val(已付金额)-Val(付款金额.Value),",##0.00")
End Sub
7.5.7 新建付款信息
单击“新建”按钮,即可将窗口恢复初始化状态,准备输入新的发票信息。程序代码如下:
Private Sub 新建_Click0
Call 重置窗口
End Sub
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~