有了上一篇“经验篇”的痛的领悟,才让我一路过关斩将解决了这些所谓的技术上的问题。在师傅验收前,我自己给自己挑毛病,差不多挑出了30几处问题,暗自庆幸没让师傅看到这些问题啊。所以,同学们,在让你们的师傅验收之前,一定要自己多多运行几遍,自己给自己挑错误。本以为自己想的挺周到的了,还是让两个师傅挑出了一大筐的错误。下面呢,我就挑一些我过程中,或者验收后的典型的错误分析一下。
例:在金额收取查询的窗体中,需要根据用户所填的时间范围选出符合时间范围的数据。
这里用到了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
例:给主窗体添加Picture控件。
当加载了图片,子窗体就被图片挡住了,所以需要给子窗体换一个父窗体。这里用到了API函数SetParent,我之前的博客中有提到过。添加了这个函数之后,某某窗体.show的语句换成下面这句就成功了。
Private Sub Register_Click() '注册窗体show SetParent frmRegister.hWnd, frmMain.hWnd End Sub
我的数据库是用企业管理器导向创建了,后来发现有个字段字母写错了,当我再次点开“设计”,修改后保存的时候,就没有办法保存我的修改。
需要点击菜单栏中“工具”→“选项”→“设计器”→将阻止保存要求重新创建表的更改前面的对勾去掉。
例:当天选定的操作员充值金额总数。
这里我使用的方法是使用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
有的时候可以直接对数据库的数据进行条件判断后更新,不用非得SELECT出来,再去修改。
例:下机后,余额的刷新,UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
txtCash = Trim(NewCash) TxtSQL = "UPDATE student_info SET cash=" & NewCash & " where cardno='" & txtCardNo & "'" Call ExecuteSQL(TxtSQL, Msgtext) '刷新余额,录入Student表中
其实问题远不止这些。。在过程中通过查资料收获了很多,最开心的时候就是经过不断的调试,一个个问题都被解决掉了。有的同学问我,为什么他们百度不出来答案,这个时候可以换个关键词啊,灵活一点。机房收费系统第一遍结束啦,下面是我的相关总结。