(三)机房收费系统--问题总结

前言:虽然建项目比较早,但是一直忙着期末考试(其实就是懒),所以在放寒假才正式开始,到现在按照计划,在三个星期内完成了(以后不会再懒了~)。在这里感谢帮助过我的小伙伴,感谢张连康,刘亚男,李光~还有我自己的努力哈~话不多说了,下面是我遇到的问题总结,来和大家分享一下~

1.列名无效&变量未定义


①工程-引用/部件

②代码内容和数据库表一致。

③注意拼写。

 


2.窗体被遮挡后,子窗体不能显示。


原因:主窗体,使用picture之后,子窗体不能显示。


解决方案:窗口重绘

 ①原理:AutoRedrawVB中的自动重绘窗口,当窗口被某个东西遮蔽了之后,窗口上那个位置原来绘制的图像被遮盖后可以用它把遮蔽的那部分重新绘制出来。

②代码如下:

Private SubForm_Load()

  Me.AutoRedraw = True

End Sub

 


3.SQLMSSQLSEVER不能启用

其实就是找不到服务器了,下图是找到的步骤:

 

 

 

4.打开界面之后 管理员和操作员 不能点击


原因:登陆的用户权限不够。

数据库中有一般用户、管理员和操作员,开始输入的用户名是一般用户的,所以管理员和操作员不能用。比如说一般用户的登录名是1,操作员的是2,那么只有输入2的时候,才能使用管理员和操作员。


解决方案:登陆名修改为操作员的即可。

 

 

5.焦点

多个Text,其中第一个text可以得到焦点。

 

6.行数问题

Mshflexgrid的时候要注意不要又空行,同时记录能够显示。

解决方案如下:



7.不允许为空值

原因:学生表中有15个内容,而注册的时候只用到了9个,所以会提示不能为空值。

加入了下图红框中的代码,把空值填满。就可以啦



 

8.输入大于最低余额充值,仍然提示“金额不能小于最低余额充值

原因:类型不匹配

        txt类型为文本,而金额为类型数值。输入的金额只能识别首位。

        所以在输入金额的时候,只要第一位大于最小金额的就会通过。

解决方案:把输入的金额改为数值型。Txtcash.text改为val(Txtcash.text)

 

9.换行

1.vbCrLf=Chr(13) &Chr(10) 回车+换行符 

2.文本框多行显示: 

Multiline = True意思是可决定一个控件可以接受多行文本

 

 

 

10.SQL语言转换成VB语言


Sql语言是不识别“”(双引号的),正如vb中不识别‘(单引号)一样

vb中用&作为连接的字符,而sql中没有此用法。

所以在做充值和查询窗体的时候,代码原因,连不上数据库。


错误原因:之前写注册窗体的时候,如果卡号注销之后,还可以作为新的卡号注册,所以在学生表中会出现同一个卡号,有很多已经注销的,只有一个最新的是未注销。然而查询卡号的时候,语句看到卡号就执行。这样,在充值金额的时候,导致,正在使用的卡号没有充值成功,反而未使用的卡号成功了。


解决方案:

()做两个限制条件

限制查询的卡号,同时显示卡号是正在使用的,才可以查询充值

Sql 语句:

select* from student_info where cardno = '1 'and status = '使用'

vb语句:

txtsql= "select * from student_info where cardno= '" &(Trim(txtCardNo.Text)) & "'And Status = '使用'"

()卡号注销之后将不能在使用。

 

11.MSHFLexgrid控件内容

①从数据库查询出来内容

②显示在文本框内

 

12.MSHFLexgrid显示的数据不全 

 

用Trim消除空行

 

 

13.Sstab控件

在 工程→部件→控件中勾选"Microsoft Tabbed Dialog Control"控件,点击应用

分享一篇师姐写的文章,非常的详细

 

http://blog.csdn.net/j15533415886/article/details/51916162


 

14.Sstab只能显示一个MSHflexgrid的内容

解决方案:不要使用选择语句

 

15.删除不了的数据库的数据 可以用SQL语句删除

注意代码顺序,保证数据库表的一致性

 

16.怎样在用户名的head栏中,添加本次操作的操作员/管理员姓名

 

代码如下:

 

17.一登录就显示上机人数

在主窗体上,设置,显示上机人数的代码即可。

主窗体上用的是Picture控件,故在此窗体上设置即可

Private SubPicture1_Click()

      Dim txtsql As String

      Dim mrc4 As Recordset

      Dim msgtext As String

     

     

       txtSQL4 = "select * fromOnLine_Info"

       Set mrc4 = executesql(txtSQL4, msgtext)

     

       Label19.Caption =Trim(mrc4.RecordCount)  '显示上机人数

End Sub

 

 

18.报表路径问题

建立报表之后,出现了下面的错误。可是路径是从原路径复制到,还是有问题。

 

原来这里涉及到一个绝对路径和相对路径的问题。后面会补充,这里先说明一下,

把报表和.vbp放到同一个文件夹里就解决啦。


知识拓展:绝对路径和相对路径

简单来说,绝对路径就是具体的,当别人不知道,你的文件防止哪里时,用一个绝对路径,就可以让

别人很方便的找打你的文件。比如"App.Path & "F:\机房-翟倩\日结账单\daycheck.grf"就是一个绝对路径。

而相对路径是,两个文件放在同一个文件夹里,就不用写的这么全面了。比如,当我把daycheck.grf.vbp

放到同一个文件夹里,就直接写“App.Path & "\daycheck.grf"”就可以了,这就是一个相对路径。

 

总结:不知道我在敲机房时遇到的问题,你有没有遇到呢?欢迎大家的指导。感谢你这么美,这么帅还来看我的博客。持续更新中~


猜你喜欢

转载自blog.csdn.net/a954553391/article/details/79355088