机房收费系统之退卡窗体--OLE错误

初版流程图,不足之处,还望指出。


一:流程图




二:vbCrLf:


字符串常数,即“Chr(13) & Chr(10)”(回车符与换行符连接在一起),是 换行 的意思。
Text1.Text = "第一行" & vbCrLf & "第二行"
注意:要在TextBox控件中换行,需先将 MultiLine 属性设置为 true

这里是采用一个text控件来展示我们所要显示的信息内容,但是内容分为好几行,那么如何解决让它乖乖的按照自己所想的分为几行或者什么时候换行呢?  这里就用到了vbCrLf这样一个好用的工具。




大家有兴趣也可以查一下,其实小编第一次做的时候用了一种很笨的方法,就是将所有的内容全部用了不同的控件来代表,当然了,写代码的时候也写了一堆,分别对每一个都写了代码,这样的效率其实是不高的。



就像这样,足足的把每一个控件都设置了一遍。所以来客要不要采用一个简单有效率的办法呢?


三:OLE错误:



引起这个问题的原因可能就是数据库的字段类型不匹配或者字符个数超出了数据库的字段的最大限制个数

例如自动编号字段的就不应该指定值;限制50个字符的字段你就不应该提交多于50个字符的字符串
当小编运行的时候出了错,将鼠标放在mrc时,显示的内容是“7         ”
我想可能是里面的空也占了字段,所以添加了trim之后就可以运行了。








四:

发现重复退了好几次卡,依旧是可以退卡,那么就可以对它进行限制,
已经退卡的就不能再次退了





五:最后要将信息更新到表student中,因为status列由使用,变成了不使用。代码如下:

                  
                '更新到student表
                
                    txtSQL = "update student_info set status = '" & "不使用" & "'" & "where cardno = '" & txtcardno.Text & "'"
                    Set mrc2 = ExecuteSQL(txtSQL, MsgText)


将退卡记录添加到cancel表中,并将其显示内容清空。代码如下:

 '将数据添加到cancel card表种
                
                    txtSQL = "select * from cancelcard_info"
                    Set mrc3 = ExecuteSQL(txtSQL, MsgText)
                        mrc3.AddNew
                            
                            mrc3.Fields(1) = txtcardno.Text
                            mrc3.Fields(2) = mrc.Fields(7)
                            mrc3.Fields(3) = Date
                            mrc3.Fields(4) = Time
                            mrc3.Fields(0) = Trim(mrc.Fields(1))
                            mrc3.Fields(5) = mrc.Fields(10)
                            mrc3.Fields(6) = "未结账"
                        mrc3.Update
                        mrc3.Close
                    
                    MsgBox "退卡成功", vbOKOnly, "恭喜"
                    
                    txtcardno.Text = ""
                    txtexplain.Text = ""


六:退卡窗体整体代码展示:


Private Sub cmdok_Click()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrc As ADODB.Recordset
    Dim mrc1 As ADODB.Recordset
    Dim mrc2 As ADODB.Recordset
    Dim mrc3 As ADODB.Recordset
    
   '判断卡号是否为空
   
    If Trim(txtcardno.Text = "") Then
        MsgBox "请输入卡号!", 48, "提示"
        txtcardno.SetFocus
    Else
    
        '卡号为数字
        
        If Not IsNumeric(txtcardno.Text) Then
            MsgBox "请输入数字!", 48, "提示"
            txtcardno.SetFocus
        Else
        
                
            '判断卡号是否存在
            
            txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'"
            Set mrc = ExecuteSQL(txtSQL, MsgText)
            
            If mrc.EOF Then
                MsgBox "卡号不存在或已经注销,请重新输入卡号!", 48, "提示"
                txtcardno.SetFocus
                txtcardno.Text = ""
            
            
            '已经退卡
            
            ElseIf Trim(mrc.Fields(10)) = Trim("不使用") Then
            
                    MsgBox "此卡已退!", 48, "提示"
                    txtcardno.SetFocus
                    txtcardno.Text = ""
                Else
            
                '判断是否正在上机
                
                txtSQL = "select * from online_info where cardno = '" & txtcardno.Text & "'"
                Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    If Not mrc1.EOF Then
                        MsgBox "此卡正在上机,请先下机再退卡!", 48, "提示"
                        txtcardno.SetFocus
                        txtcardno.Text = ""
                    Else
            
            '显示信息-----在一个文本框如何显示多行数据?vbcrlf字符串常数
            
                
                txtexplain.Text = "" & vbCrLf & vbCrLf & _
                                  "充值卡号:" & txtcardno.Text & vbCrLf & vbCrLf & _
                                  "退款金额:" & mrc.Fields(7) & vbCrLf & vbCrLf & _
                                  "退卡日期:" & Date & vbCrLf & vbCrLf & _
                                  "退卡时间:" & Time & vbCrLf & vbCrLf & _
                                  "办理老师:" & mrc.Fields(9)
                                  
                '更新到student表
                
                    txtSQL = "update student_info set status = '" & "不使用" & "'" & "where cardno = '" & txtcardno.Text & "'"
                    Set mrc2 = ExecuteSQL(txtSQL, MsgText)
                    
                '将数据添加到cancel card表种
                
                    txtSQL = "select * from cancelcard_info"
                    Set mrc3 = ExecuteSQL(txtSQL, MsgText)
                        mrc3.AddNew
                            
                            mrc3.Fields(1) = txtcardno.Text
                            mrc3.Fields(2) = mrc.Fields(7)
                            mrc3.Fields(3) = Date
                            mrc3.Fields(4) = Time
                            mrc3.Fields(0) = Trim(mrc.Fields(1))
                            mrc3.Fields(5) = mrc.Fields(10)
                            mrc3.Fields(6) = "未结账"
                        mrc3.Update
                        mrc3.Close
                    
                    MsgBox "退卡成功", vbOKOnly, "恭喜"
                    
                    txtcardno.Text = ""
                    txtexplain.Text = ""
       


自己亲自研究出来的窗体到底不一样,更有一种亲切感。

还有一个感悟:看了别人设计出来的东西,很容易将自己置于迷地之中,就像你听了别人写出来的曲子,你的每一句旋律之中就会有别人作品的影子。所以乱世之中,一定要保持自己独有的想法。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值