
本文于2023年6月9日首发于本人同名公众号,更多文章案例请搜索关注!
☆本期内容概要☆
用户窗体设置:收费结算模块设置(6)
增加合计金额
增加收款方式选择输入
大家好,我是冷水泡茶,前几期我们分享了【收费管理系统】的设计,最近一期是(Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】10),今天我们接着来。
今天的目标是在收费结算窗体上增加“合计”,以及收款方式的选择。
下面我们就开始:
1、增加一个标签:LbAmount,Caption改为“合计:”

照理我们还要增加一个标签,用来显示金额,其实不需要,用这一个就够了,到时把它的Caption改为“合计:” & 金额数字就可以了。
为了截图方便,我把它放在了上面,实际上我们要让它显示在“保存”按钮的附近。不过也无所谓了,这个窗体上的控件位置都是乱的,在窗体启动时用代码来确定每个控件的位置。
另外,我们要把它的Visible属性设置为False,在我们启动“收费结算”功能模块时,才让它显示,其他模块不显示。
(1)确定显示LbAmount位置,在If currTable = "tb收费明细" Then代码块里增加代码:
If currTable = "tb收费明细" Then With Me ...... With Me.LbAmount .Left = Me.Frame3.Left + Me.CmdAddNew.Left .Top = Me.Frame3.Top - Me.Frame3.Height .Visible = True End With ...... End WithEnd If
代码解析:根据frame3的位置来确定LbAmount的位置,运行一下:

(2)确定LbAmount的Caption,即显示合计金额。在过程HideInkEdit中增加代码,
ElseIf currTable = "tb收费明细" Then If .ColumnHeaders(intCol) = "收费项目" Then ...... amount = 0 For i = 1 To .ListItems.Count amount = amount + .ListItems(i).SubItems(Pxy(tbTitle, "金额") - 1) Next Me.LbAmount.Caption = "合计:" & Format(amount, "Standard")
代码解释:上面的代码只摘录了一部分。当金额发生变化时,就循环ListView,把所有金额加总赋值给LbAmount的Caption。这里我们无法直接捕捉金额的变化,只有在收费项目、数量、单价发生变化时,通过InkEdit退出事件来进行金额的汇总,所以这段代码共有三个地方要加。
(3)保存后,把LbAmount的Caption改为“合计:0.00”。
2、增加双击收款方式的弹出选择窗体:
收款方式,我们可以直接手工输入,也可以通过双击单元格调出选择窗体选择输入。这里没有专门配置收款方式的表,对收款方式的输入没有做严格限制,所以,在输入的时候要注意前后统一。当然,也可以建立一个收款方式的表,并进行严格限制,目前暂时略过,感兴趣的朋友可以自己来做一做。
......elseIf currTable = "tb收费明细" Then '收费明细 If .ColumnHeaders(intCol) = "收费项目" Then ItemFullName = InkEdit1 Usf_ItemSelect.Show ElseIf .ColumnHeaders(intCol) = "收款方式" Then With Usf_Interm .Caption = "选择【收款方式】" '选择收款方式 SQL = "select distinct 收款方式 from tb收费明细" If RecordValue(dataFile, "select count(*) from tb收费明细") = 0 Then arrType = Array("现金", "微信", "支付宝") Else temp = GetData(dataFile, SQL) arrType = FlattenArray(temp) End If With Usf_Interm.CmbInterm .Clear .List = arrType .Text = Me.InkEdit1.Text End With .Show End With End IfElseIf currTable = "tb价格文件" Then......
代码解析:通过InkEdit的双击事件,调用窗体Usf_Interm。
(1)通过查询“tb收费明细”表中的收款方式来供选择。
(2)在查询之前,先判断一下“tb收费明细”表有没有记录,如果没有记录我们就预置"现金", "微信", "支付宝"三种收款方式,一旦有记录,哪怕是一条,供我们选择的就是“tb收费明细”表中的收款方式。这里先行判断有无记录,也可以避免直接查询无记录时出错。
(3)查询结果存到temp,再转成一维数组,赋值给组合框的List。如果不转成一维数组,也可以通过循环的方式或者转置的方式来添加List。
最后,我们来看一下今天的成果:

好,今天就到这吧。请大家多多点赞、留言、分享,谢谢大家,我们下期再会。
本文于2023年6月9日首发于本人同名公众号,更多文章案例请搜索关注!