机房收费系统之操作员记录、正在值班人员记录(关闭窗口判断事件,MsgBox返回值,Queryunload与Unload区别)

      机房收费系统的操作员记录与正在值班人员记录的窗体比较简单,思路也差不多,在这里就汇总在一起进行总结。

一、流程图

①操作员工作记录窗体流程图

②正在值班人员窗体流程图

 

 

二、查询集

①MsgBox的返回值有哪些,如何获取返回值?


     msgbox函数有两种格式,一种带返回值,一种不带返回值

     代码如下:

     MsgBox "提示内容" , , “提示框标题” ‘不带返回值

     D=Msgbox (“提示内容”, , “提示内容”) ’D为返回值,可以知道用户按下哪个按钮

②VB窗体右上角的关闭判断事件如何调出?

     有两种激活方式:

     Form_Unload 事件   和   Form_Queryunload事件

③Queryunload事件与Unload事件的区别

     https://blog.csdn.net/gelupu/article/details/8333518

 

三、问题集

①unload事件中使用MsgBox 弹出的提示框,点击取消按钮不仅弹出窗体退出原有界面也一起退出?

      这个问题着实让我找了好久,先是从MsgBox的返回值考虑,然后又从MsgBox的类型开始考虑结果都不行,最后查到了是cancel值的问题,在Unload和Queryunload事件中的cancel默认值是0,而0是退出的意思,其他非零值则为关闭弹出窗体保持原有界面。

②Unload和Queryunload的×按钮表面上是退出了,但实际程序并未退出?

      原因在于退出时的代码编写的是unload me ,而这个代码所表示的只是退出本窗体,并非退出程序,结束程序的代码为end。如果我们忽略这个问题的话,会出现导出的.exe文件运行后无法最终关闭的情况,表面上程序关闭了,实则程序还在资源管理器的后台运行,用户只有登录资源管理器界面寻找到后台的.exe文件,点击结束才可最终结束运行的程序,这样便会影响用户的体验度。

 

四、核心代码集

①登录窗体界面,点击确定登录按钮后登录员的信息随之更新到OnWork_Info,worklog_Info数据表中

Private Sub cmdtrue_Click()

    logtxtSQL = "select * from worklog_Info"
    ontxtSQL = "select * from OnWork_Info"
    txtSQL = "select * from User_Info where userID= '" & txtuserID.Text & "'"
    
    Set logmrc = ExecuteSQL(logtxtSQL, logMsgText)
    Set onmrc = ExecuteSQL(ontxtSQL, onMsgText)
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    onmrc.AddNew
    onmrc.Fields(0) = Trim(txtuserID.Text)
    onmrc.Fields(1) = Trim(mrc.Fields(2))
    onmrc.Fields(2) = Format(Now(), "yyyy-MM-dd")
    onmrc.Fields(3) = Format(Now(), "HH:mm:ss")
    onmrc.Fields(4) = Trim(StrCPN)
    onmrc.Update
    
    logmrc.AddNew
    logmrc.Fields(1) = Trim(txtuserID.Text)
    logmrc.Fields(2) = Trim(mrc.Fields(2))
    logmrc.Fields(3) = Format(Now(), "yyyy-MM-dd")
    logmrc.Fields(4) = Format(Now(), "HH:mm:ss")
    logmrc.Fields(7) = Trim(StrCPN)
    logmrc.Fields(8) = "true"
    logmrc.Update

end sub

②点击退出窗体时,首先判断是否退出,若确定退出则更新OnWork_Info,worklog_Info数据表相应内容

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim MsgText As String
    Dim logmrc As ADODB.Recordset
    Dim logtxtSQL As String
    Dim logMsgText As String
    Dim x                                                 '定义MsgBox返回值变量
    x = MsgBox("确定要关闭么?", vbOKCancel, "温馨提示:")
    If x = vbOK Then                                      '如果返回值为VBOK

        txtSQL = "delete from OnWork_Info"                '删除正在工作人员OnWork_Info的数据
        Set mrc = ExecuteSQL(txtSQL, MsgText)

        '将注销的时间更新是worklog_Info的数据表中
        logtxtSQL = "update worklog_Info set LogoutDate='" & Format(Now(), "yyyy-MM-dd") & "' ,LogoutTime='" & Format(Now(), "HH:mm:ss") & "' ,status='" & False & "' where UserID='" & frmlogin.txtuserID.Text & "'"
        Set logmrc = ExecuteSQL(logtxtSQL, logMsgText)

        Cancel = 0                                        'cancel值为零,退出窗体
        Unload Me                                         '退出本窗体
        End                                               '退出程序

    End If
 
    If x = vbCancel Then                                 '如果按下vbcancel按钮
        Cancel = 1                                       'cancel值为非零,仅关闭弹出窗体
    End If
End Sub

以上便是与工作员有关的窗体代码梳理部分,下一站日结账窗体走起^_^

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elsa~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值