结账窗体

目录

一、选择了用户名直接显示真实姓名

二、SSTab控件的添加

三、汇总数据内容的计算

(1)、计算方法:

(2)、代码

四、结账——单击结账按钮的事件


一、选择了用户名直接显示真实姓名

Private Sub cboOpUserID_Click()
    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim msgtext As String
    
    '连接用户表
    txtSQL = "select * from user_info where userid ='" & Val(cboOpUserID.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, msgtext)
    cboOpRealName.Clear                     '清空姓名要选择的内容
    cboOpRealName.AddItem mrc.Fields(3)     '限制能选择的真实姓名,只有正确的那一个
    cboOpRealName.Text = mrc.Fields(3)      '显示真实姓名
    mrc.Close
End Sub

其实选择了真实姓名直接显示用户名也是一样的哦

二、SSTab控件的添加

工程—→部件—→Microsoft Tabbed Dialog Control 6.0 —→添加SSTab控件

三、汇总数据内容的计算

(1)、计算方法:

售卡张数:未结账的销售卡的总张数。

从Student_info表里查询,限制执行创建的操作员

退卡张数:未结账的退卡的总张数。

从Cancel_info表里查询,限制执行退卡的操作员

充值金额:未结账的注册卡时的钱和充值的钱。

我是先从在注册卡时,会添加一条记录到充值表中,然后直接从ReChargeCard_info表总查充值的总钱数,限制执行的操作员

退卡金额:为结账的退卡的前

我是直接从Cancel_info表里查的,限制执行的操作员。

临时用户的消费:我删掉了,觉得存在bug

应收金额:充值金额-退卡金额

(2)、代码

   
    Dim i As Integer
    Dim ReChargeSum As Single                   '定义充值金额
    Dim j As Integer
    Dim BackCardMoneySum As Single              '定义退卡金额
    '连接student_info表
    StxtSQL = "select * from student_info where userid ='" & Trim(cboOpUserID.Text) & "' and ischeck='未结账'"
    Set Smrc = ExecuteSQL(StxtSQL, Smsgtext)
        
    '连接recharge_info表
    RtxtSQL = "select * from recharge_info where userid='" & Trim(cboOpUserID.Text) & "' and status='未结账'"
    Set Rmrc = ExecuteSQL(RtxtSQL, Rmsgtext)
    
    '连接cancelcard_info表
    CtxtSQL = "select * from cancelcard_info where userid='" & Trim(cboOpUserID.Text) & "' and status='未结账' "
    Set Cmrc = ExecuteSQL(CtxtSQL, Cmsgtext)
        '计算售卡张数
        txtSellCardSum.Text = Smrc.RecordCount
        '计算退卡张数
        txtBackCardSum.Text = Cmrc.RecordCount
        '计算总售卡张数
        txtSellCardActual.Text = Smrc.RecordCount - Cmrc.RecordCount
        
        '计算充值金额
        For i = 0 To Rmrc.RecordCount - 1
            ReChargeSum = ReChargeSum + Val(Rmrc.Fields(3))
            Rmrc.MoveNext
        Next i
        txtRecharge.Text = ReChargeSum
        
        '计算退卡金额
        For j = 0 To Cmrc.RecordCount - 1
            BackCardMoneySum = BackCardMoneySum + Val(Cmrc.Fields(2))
            Cmrc.MoveNext
        Next j
        txtBackCardMoney.Text = BackCardMoneySum
        
        '计算应收金额
        txtCollectMoney.Text = txtRecharge.Text - txtBackCardMoney.Text

四、结账——单击结账按钮的事件

我没有在这里往日账单插入数据,我觉得这个是结一个操作员的帐,而日账单是结今天所有用户和操作员的帐,所以没有在日账单插入数据,那么只需要更改结账状态,下面是我的代码

Private Sub cmdAccount_Click()
    Dim Smrc, Rmrc, Cmrc As ADODB.Recordset
    Dim StxtSQL, RtxtSQL, CtxtSQL, Smsgtext, Rmsgtext, Cmsgtext As String
    
    If Not Testtxt(cboOpUserID.Text) Then
       MsgBox "请先选择操作员后结账!", vbOKOnly + vbExclamation, "提示"
       Exit Sub
    End If
    
    '更新student_Info表的更新状态
    StxtSQL = "update student_Info set Ischeck ='已结账' where userid= '" & cboOpUserID & "'"
    Call ExecuteSQL(StxtSQL, Smsgtext)
    
    '更新recharge_Info表的更新状态
    RtxtSQL = "update recharge_Info set status ='已结账' where userid= '" & cboOpUserID & "'"
    Call ExecuteSQL(RtxtSQL, Rmsgtext)
    
    '更新cancelcard_Info表的更新状态
    CtxtSQL = "update cancelcard_Info set status ='已结账' where userid= '" & cboOpUserID & "'"
    Call ExecuteSQL(CtxtSQL, Cmsgtext)
    
    MsgBox "结账成功!", vbOKOnly + vbExclamation, "提示"
    
End Sub

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/84932379