常见的问题

来源:互联网 发布:英文大数据翻译 编辑:程序博客网 时间:2024/05/22 06:06

学生信息“时代”终于结束了,长长的舒了一口气,但是打扫战场更加艰难,下面说两个出现最多的问题


【学生信息系统】EOFBOF

大家在敲学生的时候我相信很多人都遇到了这类问题,遇到问题就要解决,通过查阅理解了记录集RecordsetEOFBOF属性


EOF和BOF属性

          · BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。 

          · EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。

返回值BOF 和 EOF 属性返回布尔型值。

 

使用 BOF 和 EOF 属性可确定Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。

   .如果当前记录位于第一个记录之前,BOF 属性将返回 True ,如果当前记录为第一个记录或位于其后则将返回 False 

   .如果当前记录位于 Recordset 对象的最后一个记录之后 EOF 属性将返回 True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False

   .如果 BOF  EOF 属性为 True,则没有当前记录。

   .如果打开没有记录的 Recordset 对象,BOF 和 EOF 属性将设置为 True,而Recordset 对象的RecordCount属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而 BOF 和 EOF 属性为 False。

   .如果删除 Recordset 对象中保留的最后记录,BOF 和 EOF 属性将保持 False,直到重新安排当前记录。

 

以下表格说明不同 BOF 和 EOF 属性组合所允许的 Move 方法。

产生上图的错误,就是因为在执行代码的时候,下面这张图中的错误避免导致的。

 

MoveFirst,

MoveLast

MovePrevious,

Move < 0

Move 0

MoveNext,

Move > 0

BOF=True,

EOF=False

允许

错误

错误

允许

BOF=False,

EOF=True

允许

允许

错误

错误

同时为 True

错误

错误

错误

错误

同时为 False

允许

允许

允许

允许

 

允许使用 Move 方法并不能保证该方法成功定位记录,只是意味着调用指定的 Move 方法不会产生错误。

下表说明当调用各种 Move 方法但未成功定位记录时 BOF 和 EOF 属性设置所发生的情况。

 

 

BOF

EOF

MoveFirst, MoveLast

设置为 True

设置为 True

Move 0

没有变化

没有变化

MovePrevious, Move < 0

设置为 True

没有变化

MoveNext, Move > 0

没有变化

设置为 True

 

 

对象变量或with块变量未设置——问题根源

 

我找到了一篇文章也是CSDN里的,那里说的非常详细,有疑惑的同学可以看一下

http://blog.csdn.net/hao134838/article/details/37936681



学号重复问题


在优化“修改学籍信息”中出现了以上问题,其主要原因是在下面这一段代码里,



txtSQL = "select * from student_Info where student_ID = '" & Trim(txtSID.Text) & "'"这句话的意思就是在“student_Info”表中找到“student_ID”字段与“txtSID.Text”控件相等。相等就意味着重复,与下面“学号重复,请重新输入”的代码发生冲突,所以会出现上述问题。

注意将mrc.Close”一定去掉或注释,因为你不可能刚连接上就关闭吧;还要把“mrc.AddNew”去掉或注释,因为这是修改更新的窗体,不是添加之类的窗体。


感谢金颖美女、苹果美女、涛哥对我的独家赞助!



刚开始不懂这些代码,这些表示在连接数据库后(数据库为空)把vb控件里的值放到数据库中去;代码相反则表示vb要调用数据库里的值,换句话说将数据库里的值在vb中显现出来。


 



原创粉丝点击