学生管理系统-------添加成绩信息窗体错误总结:

一:
出现错误: 91 :

提示错误:
这里写图片描述
出错的提示语句:这里写图片描述

当时在敲的时候也很纳闷,前面好几个窗体都有这个语句,而且没有出错,为什么偏偏在这个窗体出错了?
于是我就通过百度查,百度说可能是由于mrc 没有建立成功 ,或者是由于mrc 里面是空,于是我用msgbox方法 :
来显示他的数据到底是不是空。
如下:
这里写图片描述
如果是空,那么就弹出窗体 1
果然不出所料,弹出了1 ,那么就说明 现在的mrc 为空,是无效的
之后通过李光师哥的csdn ,发现他的错误整理中也有这个问题,他说这个问题大多都是由于输入错误,然后我就检查了一下自己的代码,发现:
txtSQL = “select* from student_info where class_No=’” & comboClassno.Text & “’”
这行代码中 select 前面多了一个空格,之后把空格删除之后就可以正常运行喽!

所以在敲代码的时候一定得注意一些语法规则,一边理解,一边敲这样效果更好。

在敲学生的时候发现很多窗体都会“检查是否重复” :

而且他们惯用的语句段就一样, 虽然敲了好几次,但是只知道这是实现重复查询功能的,
但是他其中的原理还真的不太明白,于是我就仔细研究了一下:

语句块:

txtSQL = "select * from student_Info where student_ID='" & Trim(txtSID.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = False Then
Msgbox” 数据库中已有该信息,重复!” ,vbokonly , vbExclamation,” 警告”
End if

解析:
txtSQL = “select * from student_Info where student_ID=’” & Trim(txtSID.Text) & “’”
其中txtSID.Text里面存放的应该是一个学生的编号,

而txtSQL的功能就是查找txtSID.Text里面输入的这个学生编号在student_Info(学生信息表)表中存不存在

Set mrc = ExecuteSQL(txtSQL, MsgText)
其中ExecuteSQL(txtSQL, MsgText)返回了一个txtSQL查询后的记录集存放在变量mrc中

If mrc.EOF = False Then..
这是在判断这个记录集有没有数据,
如果= False就说明有数据,也就是说明txtSID.Text里这个学生编号在student_Info(学生信息表)表中存在

错误二:

这里写图片描述
这段语句无法实现想要得效果,也就是说在课程中无法显示数据库中的数据,刚开始以为是代码敲错,但是和上面的俩段功能相同得代码对比,发现并没有语句上得错误。
但是当我仔细观察数据库得时候,我发现自己得俩个表得字段名并没有统一!
这里写图片描述
这里写图片描述
这里写图片描述

上面我用msgbox Grade 的作用:
用来检查“是否可以通过班号找到相应得年级,
答案是”可以” , 那么问题,一定出在“ 通过年级找到对应课程” 语句段中,

之后我打开数据库 研究了这俩个表发现错误得根源:
在class_info 表中grade 字段的内容和 表 gradecourse_info 表中grade字段得内容不一致。
之后我把俩个表中的 grade 字段内容改为一致,功能实现!

这个错误的出现告诉我们,在敲数据库的项目时候一定要注意数据库中数据信息和代码之间的联系,就好比我叫赫于富,你看见我 总叫我其他的名字,我当然不会回复你。

其实这俩个问题都告诉我,在敲代码的时候一定要明白代码语句之间的逻辑关系和它实现的功能,这样通过与数据库的对比,才明白这行代码为什么可以实现这样的功能,当我们对代码的含义弄懂之后,即使有错误出现,也可以通过分析,很快的解决。

而且我发现 msgbox“” 语句是一个检查错误的好帮手!

猜你喜欢

转载自blog.csdn.net/qq_30631063/article/details/81175125