当前位置:首页 > 技术分析 > 正文内容

Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】11

ruisui884个月前 (01-05)技术分析30

本文于2023年6月9日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

☆本期内容概要☆

  • 用户窗体设置:收费结算模块设置(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 With
End 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 If
ElseIf currTable = "tb价格文件" Then
......

代码解析:通过InkEdit的双击事件,调用窗体Usf_Interm。

(1)通过查询“tb收费明细”表中的收款方式来供选择。

(2)在查询之前,先判断一下“tb收费明细”表有没有记录,如果没有记录我们就预置"现金", "微信", "支付宝"三种收款方式,一旦有记录,哪怕是一条,供我们选择的就是“tb收费明细”表中的收款方式。这里先行判断有无记录,也可以避免直接查询无记录时出错。

(3)查询结果存到temp,再转成一维数组,赋值给组合框的List。如果不转成一维数组,也可以通过循环的方式或者转置的方式来添加List。

最后,我们来看一下今天的成果:

好,今天就到这吧。请大家多多点赞、留言、分享,谢谢大家,我们下期再会

☆猜你喜欢☆

Excel VBA 电子发票管理助手

Excel VBA 凭证打印

Excel VBA 中医诊所收费系统

Excel VBA 动态添加控件

Excel VBA 酷炫的日期控件

Excel 固定资产折旧计提表

Excel VBA 数组字段定位排序

Excel 处理重复值

Excel VBA 最简单的收发存登记系统

Excel 公式函数/查找函数之LOOKUP

Excel VBA 文件批量改名

Excel 公式函数/动态下拉列表

Excel VBA 输入逐步提示

Excel 基础功能【数据验证】


本文于2023年6月9日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/26.html

分享给朋友:

“Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】11” 的相关文章

Linux 最主要的发行分支

Linux 有数百个发行分支。主要的有以下四个。slackwareSlackware 是由 Patrick Volkerding 在 1992 年推出的,它是全球现存最古老的 Linux 发行版。Slackware 被设计为高度可定制和强大的,并且要求用户了解 每个元素,它的包系统是不支持依赖的。...

vue 3 学习笔记 (八)——provide 和 inject 用法及原理

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传很多次,会很麻烦。像这种情况,可以使用 provide 和 inject 解决这种问题,不论组件嵌套...

代码分支规范

一.gitflow工作流说明:主分支:master,稳定版本代码分支,对外可以随时编译发布的分支,不允许直接Push代码,只能请求合并(pull request),且只接受hotfix、release分支的代码合并。gitlab上做限制。热修复分支:hotfix,针对现场紧急问题、bug修复的代码分...

高效使用 Vim 编辑器的 10 个技巧

在 Reverb,我们使用 MacVim 来标准化开发环境,使配对更容易,并提高效率。当我开始使用 Reverb 时,我以前从未使用过 Vim。我花了几个星期才开始感到舒服,但如果没有这样的提示,可能需要几个月的时间。这里有十个技巧可以帮助你在学习使用 Vim 时提高效率。1. 通过提高按键重复率来...

多项修正 尼康D4s发布最新1.10版固件

尼康公司与2014年8月27日发布了D4s的最新固件,固件版本号为C:1.10。这次固件升级,主要解决了一些BUG,并且对拍摄菜单与相机操作做了一定调整。下面是本次新固件的具体信息:尼康发布D4s最新C固件 1.10版对C固件升级到1.10版所作的修改:当选定运动VR模式并换上 AF-S 尼克尔 4...

有效地简化导航-Part 1:信息架构

「四步走」——理想的导航系统要做一个可用的导航系统,网页设计师必须按顺序回答以下4个问题:1. 如何组织内容?2. 如何解释导航的选项?3. 哪种导航菜单最适合容纳这些选项?4. 如何设计导航菜单?前两个问题关注构建和便签内容,通常称为信息架构。信息架构师通常用网站地图(site map diagr...