机房收费系统 Part Eight——系统验收后总结(二) 技术篇

         有了上一篇“经验篇”的痛的领悟,才让我一路过关斩将解决了这些所谓的技术上的问题。在师傅验收前,我自己给自己挑毛病,差不多挑出了30几处问题,暗自庆幸没让师傅看到这些问题啊。所以,同学们,在让你们的师傅验收之前,一定要自己多多运行几遍,自己给自己挑错误。本以为自己想的挺周到的了,还是让两个师傅挑出了一大筐的错误。下面呢,我就挑一些我过程中,或者验收后的典型的错误分析一下。


    (1)使用DTPicker控件判断日期范围

     例:在金额收取查询的窗体中,需要根据用户所填的时间范围选出符合时间范围的数据。

     这里用到了DTPicker控件的Value属性,判断值的大小。

    Dim TxtSQL As String
    Dim Msgtext As String
    Dim Mrc As ADODB.Recordset
    
    TxtSQL = "SELECT * FROM Recharge_Info where date>='" & Date1.Value & "'" & "and date<='" & Date2.Value & "'"
    Set Mrc = ExecuteSQL(TxtSQL, Msgtext)
    '合适时间范围的数据列出

     有了这个值得判断,进一步还可以提醒用户,起始时间不能晚于终止时间,这里体现了全心全意为用户着想的心思。

If Date2.Value < Date1.Value Then
    '判断时间范围是否合理
        MsgBox "终止日期比起始日期还有早!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        
    End If

    这个控件有个特点,就是它的初始化日期就是你第一个添加它的时候,师傅建议我把它设置成当天的时间。在窗体的加载事件中设置一下它的Value属性(=Date)就可以了。



    (2)给MDI窗体添加背景图片

     例:给主窗体添加Picture控件。

     当加载了图片,子窗体就被图片挡住了,所以需要给子窗体换一个父窗体。这里用到了API函数SetParent,我之前的博客中有提到过。添加了这个函数之后,某某窗体.show的语句换成下面这句就成功了。

Private Sub Register_Click()
'注册窗体show
    SetParent frmRegister.hWnd, frmMain.hWnd
End Sub



    3)数据库表不能修改字段

     我的数据库是用企业管理器导向创建了,后来发现有个字段字母写错了,当我再次点开“设计”,修改后保存的时候,就没有办法保存我的修改。

     需要点击菜单栏中“工具”→“选项”→“设计器”→将阻止保存要求重新创建表的更改前面的对勾去掉。

机房收费系统 Part Eight——系统验收后总结(二) 技术篇_第1张图片



    (4)结账时求和的计算

      例:当天选定的操作员充值金额总数。

      这里我使用的方法是使用For...Next循环遍历所有Recharge表中的数据,将字段AddMoney下面的数字挨个的加起来。这里需要加一个为空记录的时候的处理,即无充值时为零。否则会报错的。

    TxtSQL = "select* From  recharge_info where userid='" & CboUserID & "'and date='" & Date & "'"
    '数据符合条件:操作员=cbouserid ,日期为当天
    Set ReCmrc = ExecuteSQL(TxtSQL, Msgtext)
    
    For j = 0 To ReCmrc.RecordCount
        If ReCmrc.EOF Then
            txtRecharge.Text = "0"
            
        Else
            txtRecharge.Text = Val(txtRecharge.Text) + Val(Trim(ReCmrc.Fields(3)))   '选定操作员的充值金额
            j = j + 1
    
        End If
    Next



    (5)更新数据库中的数据,UPDATE...SET...语句

      有的时候可以直接对数据库的数据进行条件判断后更新,不用非得SELECT出来,再去修改。

      例:下机后,余额的刷新,UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    txtCash = Trim(NewCash)
    TxtSQL = "UPDATE student_info SET cash=" & NewCash & " where cardno='" & txtCardNo & "'"
    Call ExecuteSQL(TxtSQL, Msgtext)            '刷新余额,录入Student表中

      既然在SQL视频中学习了一些基础语言,我们就应该在做系统的时候试试,可以省不少事情。


    小结:

     其实问题远不止这些。。在过程中通过查资料收获了很多,最开心的时候就是经过不断的调试,一个个问题都被解决掉了。有的同学问我,为什么他们百度不出来答案,这个时候可以换个关键词啊,灵活一点。机房收费系统第一遍结束啦,下面是我的相关总结。

    1. 机房收费系统 Part One——数据库中添加MDF文件
    2. 机房收费系统 Part Two——敲机房收费,悟大道至简
    3. 机房收费系统 Part Three——我看复合查询中的”Keyword”
    4. 机房收费系统 Part Four——树全局观,上下机So Easy
    5. 机房收费系统 Part Five——认识新同学报表
    6. 机房收费系统 Part Six——MSFlexGrid控件总结
    7. 机房收费系统 Part Seven——系统验收后总结(一) 经验篇
                    如果有什么错误,欢迎大家指出。

你可能感兴趣的:(sql,vb,机房收费系统)