excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA 收费结算模块/一步一步带你设计「收费管理系统」09

本文于2023年5月29日首发于本人同名公众号,更多文章案例请搜索关注!

☆本期内容概要☆

  • 用户窗体设置:收费结算模块设置(4)

  • 增加数据库表“tb价格文件"

大家好,我是冷水泡茶,前些天我们分享了【收费管理系统】收费结算模块的设计【Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】08】,有几天没有搞它了,本期我们继续。

根据前面我们分享的(【重磅】Excel VBA 应用分享/中医诊所收费系统/Excel+ListBox版),我们发现,目前的数据库结构需要调整:

1、tb收费明细:需要增加字段,数量、单价。

2、需要增加一个新表:tb价格文件,用于录入收费项目时,自动填写价格,根据数量,自动计算收费金额。

下面我们一起来做吧:

1、tb收费明细增加数量、单价字段:

打开数据库,选中tb收费明细,进入设计视图,右击一个字段,点插入行:

输入字段名称:数量,数据类型:数字,接着插入金额,数据类型也是数字。

2、新建数据库表:tb价格文件

3、给tb价格文件增加系统入口菜单,同样采用复制的方法:

4、设置tb价格文件表的编辑代码,:

Private Sub CmdPrice_Click()  Sheets("Settings").Activate    With ActiveSheet        iRow = .UsedRange.Rows.Count        currUserName = .Cells(Application.WorksheetFunction.Match("currUserName", _            .Range(Cells(1, 2), Cells(iRow, 2)), 0), 3)    End With    If currUserName = "" Then        MsgBox "当前登录用户信息丢失,请重新登录!"        Exit Sub    End If    Unload Me    currTable = "tb价格文件"    Usf_AddAndModify.ShowEnd Sub

5、修改Usf_AddAndModify启动代码,在访问的表为空的情况下,给一条空记录:

If RecordValue(dataFile, "select count(*) from " & currTable) > 0 Then    aData = GetData(dataFile, initSQL)Else    ReDim aData(0 To UBound(tbTitle, 1) - 1, 0 To 0)End If

代码解析:if语句,else部分是今天新加的,如果表没有记录,那么直接访问aData是要出错的,ReDim一下,在加载到ListView的时候,增加一条空记录。

6、增加tb价格文件表中项目代码、项目全称的双击选择输入代码:

ElseIf currTable = "tb价格文件" Then    If .ColumnHeaders(intCol) = "项目代码" Or .ColumnHeaders(intCol) = "项目全称" Then        ItemFullName = InkEdit1        Usf_ItemSelect.Show    End IfEnd If

代码分析:如果双击的是项目代码或项目名称栏,则显示项目选择窗体。

7、修改项目列表窗体Usf_ItemSelect点击代码,这里为了能够同时填入项目代码和项目名称,把变量intCol改成公共变量:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)    On Error Resume Next    If Me.TreeView1.SelectedItem.Children = 0 Then        If IsFormActive("Usf_AddAndModify") Then            With Usf_AddAndModify                If .LvDetail.ColumnHeaders(intCol) = "收费项目" Then                    .InkEdit1.Text = Me.TreeView1.SelectedItem.Text                ElseIf .LvDetail.ColumnHeaders(intCol) = "项目代码" Then                    .LvDetail.SelectedItem.SubItems(intCol) = Me.TreeView1.SelectedItem.Text                    .InkEdit1.Text = Me.TreeView1.SelectedItem.Key                ElseIf .LvDetail.ColumnHeaders(intCol) = "项目全称" Then                    .InkEdit1.Text = Me.TreeView1.SelectedItem.Text                     .LvDetail.SelectedItem.SubItems(intCol - 2) = Me.TreeView1.SelectedItem.Key                End If            End With        End If        Unload Me    End IfEnd Sub

8、修改tb收费明细表中,输入收费项目,自动带出单价,并把数量预填为1,计算金额;修改数量、单价,自动计算金额,金额不能修改,代码在HideInkEdit过程中:

ElseIf currTable = "tb收费明细" Then    '根据收费项目,查询单价填入    If .ColumnHeaders(intCol) = "收费项目" Then        .SelectedItem.SubItems(intCol - 1) = InkEdit1.Text        SQL = "select 单价 from tb价格文件 where 项目全称='" & InkEdit1 & "'"        .SelectedItem.SubItems(Pxy(tbTitle, "单价") - 1) = RecordValue(dataFile, SQL)        .SelectedItem.SubItems(Pxy(tbTitle, "数量") - 1) = 1        .SelectedItem.SubItems(Pxy(tbTitle, "金额") - 1) = _            .SelectedItem.SubItems(Pxy(tbTitle, "数量") - 1) _            * .SelectedItem.SubItems(Pxy(tbTitle, "单价") - 1)    ElseIf .ColumnHeaders(intCol) = "数量" Then        .SelectedItem.SubItems(intCol - 1) = InkEdit1.Text        .SelectedItem.SubItems(Pxy(tbTitle, "金额") - 1) = _            InkEdit1 * .SelectedItem.SubItems(Pxy(tbTitle, "单价") - 1)    ElseIf .ColumnHeaders(intCol) = "单价" Then        .SelectedItem.SubItems(intCol - 1) = InkEdit1.Text        .SelectedItem.SubItems(Pxy(tbTitle, "金额") - 1) = _            .SelectedItem.SubItems(Pxy(tbTitle, "数量") - 1) * InkEdit1    ElseIf .ColumnHeaders(intCol) = "金额" Then    Else        .SelectedItem.SubItems(intCol - 1) = InkEdit1.Text    End IfElse     '对应 类似 ElseIf currtable="tb?" Then

代码解释:

(1)如果是“收费项目”栏,查询单价填入,同时数量改为1,并计算金额。

(2)如果是单价、数量栏,重新计算金额。

(3)如果是金额栏,不做处理,实现金额不能手工修改的效果。

由于时间与篇幅的关系,今天就到这吧。后面会继续,敬请关注!还请大家多多点赞、留言、分享,谢谢大家,我们下期再会。

☆猜你喜欢☆

本文使用 文章同步助手 同步,本文于2023年5月29日首发于本人同名公众号,更多文章案例请搜索关注!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接