EOF 或 EOF 中有一个是“真” 与 多步 OLE DB 操作产生错误

以下是做学生管理系统的常见问题、希望chenchen能帮助大家屁颠屁颠的走过学生管理系统O(∩_∩)O哈哈~

一、EOF BOF 只能有一个为真



——了解 BOF EOF
BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。 
EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后.

原因:
数据库中没有数据、添加数据可消除错误、但是并不能根治!
所以!空数据会导致错误、因为他会调用类似这句话


 因为,mrc.Fields里面根本没动动………………
解决方法:
在执行这段代码之前、判定数据库是否为空、如果为空就不执行一些操作(看情况)

'判定死否有数据(也有其他方法、我用这个成功了)
 If mrc.RecordCount = 0 Then
'窗口提示没数据
        MsgBox "没有记录…………", vbOKCancel, "删除当前纪录"
'退出过程
        Exit Sub
 End If

总之是这个意思、就是判定一下数据库是否为空、根据实际情况给与更改、再送一句————

使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。



二、WITH未设置



原因:这句话是说连接问题、如数据库没连上、我自己也不是特别了解不过…………

这句绝对要查查的!引号里面的话
select * from result_info where   
 这句话杀人于无形!!!真的!你不知道什么时候、哪哪哪时候少打个空格!死都不知道怎么死的- -

这个错误我的小经验告诉我、查与是数据的链接吧!

三、数据库错误(如图)

发现问题:在录入数据的时候、如果你蛋疼的打了一堆数据、就会产生这种情况
 

 上面两种都是一个问题、点击调试会发现都会停在储存信息这块、


原因:因为数据库的储存空间比你要录入数据所需空间小

解决方法:
1、打开数据库、找到你对应的表、对着表右键--设计

2、了解数据类型
int                  数据狗昔存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。
char(10)       字段大小,该字段大小为10

只要超过了上面的范围就会报错int报错第一个图的、char报错第二个图的

这里说下Null  打钩就是允许为空、不打勾这列就必须要输入数据

3、解决
设置适当的char的字段大小
用text控件限制输入字段大小、如学号限制在10个字段以内、多了就输入不进去(下文有讲text控件对文字的的一些限制)



保存:最后别忘了保存、如果你保存出现这种情况………………


解决方法:工具-->选项-->Designers-->表设计器和数据库设计器,把“阻止保存要求重新创建表的更改”的勾去掉然后点“确定”即可
 
四、小错误

有一些小错误、找不到也挺郁闷的如………………
1、照着例子补全所有引用与部件、这是基本 =  = 

2、   这几句重复的不能再重复的话、懂不懂您好赖查查……感觉学生管理系统就这么几句……
Recordset、
EOF /BOF、
txtsql = txtsql & " order by student_ID " 
 Set mrc = executeSQL(txtsql, msgtext)
还有模块里的感觉需要了解下!
对数据库的增、删、改、查(我还真不清楚- -大家最好了解下透彻的!我要补补滴!)

3、这控件是添加到MDI里的……弄了半天才发现…………你藏得好深!


4、MSHFlexGrid控件不要忘记设置属性!如图




5、要是碰到别的那估计就是代码细节出错了、打错个字母什么的、解决方法
断点+F8、不一定加黄了的就是错误的句子、有课能在他前面哪句错了、仔细认真耐心、一定行!相信自己!
6、有时学号能输入文字、科目能输入数字、这很不符合逻辑、而且用户名最好也要限制长度
下面是txt的一些代码、大家试试玩

只允许汉字

Private Sub Text1_KeyPress(KeyAscii As Integer)

If (KeyAscii < -20319 Or KeyAscii > -3652) And KeyAscii <> 8 Then KeyAscii = 0

End Sub

'只允许字母

Private Sub Text1_KeyPress(KeyAscii As Integer)

If (Asc(UCase(Chr(KeyAscii))) > 90 Or Asc(UCase(Chr(KeyAscii))) < 65) And KeyAscii <> 8 Then KeyAscii = 0

End Sub

'只允许数字(0-9)

Private Sub Text1_KeyPress(KeyAscii As Integer)

If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then KeyAscii = 0

End Sub

'限制长度可以设置maxlength属性



最后!

其他的就记不起来了、因为一下就解决了、对我幼小心灵伤害不深、所以就没记住喽、如果你碰到了、其他错误、那就加油吧!


                                                             看完必须回复!

—————————————————— chenchen —————————————————
 
 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值