结账,顾名思义就是把钱算一下。
这几个选项卡中,就是汇总的代码有点难,其他的都还好。
以上就是我的结账,若有错误,请大神指出~~~
这的结账不是给每一个卡号结账,而是给一个操作员结账,算一下这个操作员一共卖卡张数,退卡张数,实收金额,应收金额等等。
结账的界面是这个样子的,其中用到一个选项卡
这个窗体相比较而言还有有点难度的。别看一个小小的操作员用户名,它不是一般的Combo控件,对于一般的Combo控件下拉菜单中的内容,
例如使用ComboBox1.AddItem "你添加的内容"
只要写在窗体的加载事件下都可以;而对于这个窗体,下拉框中的内容不是一成不变的,而是根据SQL数据库表中的内容而变化的,所以这个控件编写下拉框内容的时候,需要连接数据库
根据表中的用户权限,操作员就只有一个,所以combo控件的下拉框中只有一个用户——3。
动态的combo下拉框的代码是这样的
</pre><pre name="code" class="plain">Private Sub Form_Load()
Dim txtSQL As String
Dim MsgText As String
Dim mrcuser As ADODB.Recordset
txtSQL = "select * from user_info " '连接数据库
Set mrcuser = ExecuteSQL(txtSQL, MsgText)
Do While Not mrcuser.EOF '利用do while 语句把表中的操作员的用户名显示到窗体上
cmbuserid.AddItem mrcuser.Fields(0)
mrcuser.MoveNext
Loop
End Sub
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);">解决完这个问题后,还有另一个问题,就是当你选择好用户名的时候,让下面的真实姓名也显示出来,因为都是一一对应的</span>
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><img src="https://img-blog.csdn.net/20150905201601648?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
</span>
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);">对于这段代码,是写在cmbuserid 的click事件下的,代码如下</span>
</span>
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"></span></span><pre name="code" class="plain">Private Sub cmbuserid_Click()
Dim txtSQL As String
Dim MsgText As String
Dim mrcuser As ADODB.Recordset
txtSQL = "select * from user_info where userid='" & cmbuserid.Text & "'" ' 以选择的userID作为条件
Set mrcuser = ExecuteSQL(txtSQL, MsgText)
cmbusername.Text = mrcuser.Fields(3) & ""
End Sub
接下来就是另一个问题了,一个选项卡中有好几个选项卡,那么应该把代码写在什么的事件下面呢,对于这个问题,我当时根本没有头绪,是问的别人。
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"></span></span><pre name="code" class="plain">If SSTab1.Tab = 1 Then '填写购卡代码
If SSTab1.Tab = 2 Then '填写充值代码
If SSTab1.Tab = 3 Then '填写退卡代码
If SSTab1.Tab = 4 Then '填写临时用户代码
If SSTab1.Tab = 5 Then '填写汇总代码
If SSTab1.Tab = 6 Then '填写退出代码
这几个选项卡中,就是汇总的代码有点难,其他的都还好。
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><img src="https://img-blog.csdn.net/20150905201823895?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
</span></span></span>
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"></span></span></span><pre name="code" class="plain"><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(1)购卡张数:用到student表,就是算一下这个操作员一共卖了多少张卡,其中会用到一个RecordCount </div><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(2)退卡张数:用到Cancelcard 表,同样算一下一共退了多少卡</div><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(3)总售卡数:我是这样理解的:总售卡数=售卡张数+退卡张数</div><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(4)充值金额:用到recharge表,就是算一下总的充值钱数,要用到sum 函数</div><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(5)退卡金额:用到Cancelcard 表,同样算一下一共退的钱数</div><div style="line-height: 28px; color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; background-color: rgb(240, 240, 240);">(6)应收金额:应收金额=充值金额-退卡金额</div><pre name="code" class="plain"> '填写汇总选项卡
If SSTab1.Tab = 4 Then
'售卡张数由student表决定
txtSQL = "select * from student_info where userid='" & Trim(cmbuserid.Text) & " '"
Set mrcstudent = ExecuteSQL(txtSQL, MsgText)
txtcardsell.Text = mrcstudent.RecordCount
'退卡张数由cancelcard表决定
txtSQL = "select * from cancelcard_info where userid='" & cmbuserid.Text & "'"
Set mrccancelcard = ExecuteSQL(txtSQL, MsgText)
txtcardback.Text = mrccancelcard.RecordCount
'总售卡张数=售卡+退卡
txtsumcardsell.Text = mrcstudent.RecordCount + mrccancelcard.RecordCount
'填写充值金额
txtSQL = "select sum (addmoney) from recharge_info where userID='" & cmbuserid.Text & "'"
Set mrcrecharge = ExecuteSQL(txtSQL, MsgText)
txtrecharge.Text = Trim(mrcrecharge.Fields(0)) & ""
'填写退卡金额
txtSQL = "select sum(cancelcash)from cancelcard_info where userid='" & cmbuserid.Text & "'"
Set mrccancelcard = ExecuteSQL(txtSQL, MsgText)
txtcardbackcash.Text = mrccancelcard.Fields(0) & ""
'填写临时收费 利用studnet表找到谁是临时用户,找到卡号,然后从recharge表中找到consume之和
txtSQL = "select * from student_info where userid='" & Trim(cmbuserid.Text) & " 'and type='" & "临时用户" & "'"
Set mrcstudent = ExecuteSQL(txtSQL, MsgText)
Do While Not mrcstudent.EOF
txtSQL = "select * from recharge_info where cardno='" & Trim(mrcstudent!cardno) & "' and status ='未结账' and userid='" & Trim(cmbuserid.Text) & "'"
Set mrcrecharge = ExecuteSQL(txtSQL, MsgText)
If mrcrecharge.EOF Then
GoTo nx
End If
txttmprecharge.Text = mrcrecharge.Fields(0)
A = A + Val(mrcrecharge!addmoney)
nx:
mrcstudent.MoveNext
Loop
txttmprecharge.Text = A
'没有临时收费的用户
If mrcrecharge.EOF = True Then
MsgBox "没有临时用户收费!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
txtshouldcash.Text = Val(txtrecharge.Text) - Val(txtcardbackcash.Text) & ""
End If
以上就是我的结账,若有错误,请大神指出~~~
<span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);"><span style="color: rgb(44, 44, 44); font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; background-color: rgb(240, 240, 240);">
</span></span>