实时错误 ‘91
今天运行时遇到了第一个错误实时错误 '91,看了师哥师姐的博客之后,最终也是解决了这个棘手的问题。
可能出现这种问题的情况有:
1.数据库ODBC配置问题
2.VB模块中连接数据库的代码,用户名,密码和ODBC不同步
3.代码中语句出错,连接不到数据库所要连接的表
4.有些地方需要有空格,没注意就没有打上
我犯了以上两个错误,首先是密码有问题
Public Function ConnectString() As String
ConnectString = “FileDSN=student.dsn;UID=sa;PWD=123456”
End Function
一开始我的密码写的是123,其实我ODBC上设置的密码是123456,当时对ConnectString函数不了解,经过搜索查询了解到,它是通过dsn的方式连接数据库,userid——用户名,可缩写为UID;password——密码,可缩写为PWD。最后把密码改了之后还是显示实时错误 '91,然后我只能继续研究研究…
第二次改正错误,真的微乎其微,SQL代码里面一个标点符号,还有更不容易发现的空格也不能出错,不然是连不上数据库的,下图就是我调试错误之中的一个错误:
select与双引号之间,select与星号之间,from与星号之间,where后面都需要一个空格,大家多注意一下!
实时错误 ‘-2147217887
在满怀期待的第三次运行时遇到的第二个错误是 实时错误’-2147217887:
分析
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.AddNew
mrc.Fields(0) = Trim(txtSID.Text)
mrc.Fields(1) = Trim(txtName.Text)
mrc.Fields(2) = Trim(comboSex.Text)
mrc.Fields(3) = Trim(txtBorndate.Text)
mrc.Fields(4) = Trim(comboClassno.Text)
mrc.Fields(5) = Trim(txtTel.Text)
mrc.Fields(6) = Trim(txtRudate.Text)
mrc.Fields(7) = Trim(txtAddress.Text)
mrc.Fields(8) = Trim(txtComment.Text)
mrc.Update
MsgBox "添加学籍信息成功!", vbOKOnly + vbExclamation, "警告"
mrc.Close
Me.Hide
观察以上的代码没有发现错误,但是实时错误 '-2147217887显示在mrc.Fields(5)=Trim(txtTel.Text),那错误可能存在数据库中,下面就让我们打开数据库:
从列“tele_Number”的限制条件是长度为10。也就是说我们在与“tele_Number”对应的“联系电话”一栏中只能输入长度为10的长整型字符串,而在运行时我们输入的电话号码一般都是十一位数字,明显的超出了这个范围。
解决
如何解决这个问题呢?为了能够完整的输入电话号码,我们就要把只能输入长度为10的改为11。但是当你改权限的时候发现不能修改。现在就打开工具-选项-设计器-标设计器和数据库设计器,把阻止保存要求重新创建表的更改前面的对勾取消就可以啦~
然后再重新打开tele_Number修改页面,把限制长度10改为11。
这个时候再次运行就不会出现这个错误啦,小伙伴们赶紧去尝试一下吧!
实时错误 ‘3021
非常令人激动的事情来了,又双叒叕遇到了一个错误——实时错误 '3021。虽然解决完问题的那一刻妙不可言,但是解决了一个还会有下一个错误,我累了,谁能让我突然智慧加倍呢,一下解决所有问题,好啦,进入正题啦,伙伴们:
分析
首先我们先来了解一下什么是BOF和EOF:
BOF、EOF属性:
BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
返回值:
BOF 和 EOF 属性返回布尔型值。
通过师哥师姐的博客了解到:这个错误一般是出现的情况是在:当系统中还没有添加任何信息的时候,去点击修改信息的时候。(例如:没有添加任何的学籍信息,而且系统之前也没有任何的学籍信息,这个时候去点修改学籍信息,就回出现这种情况)。我当时显示的错误如图所示:
解决方法
我采用的是添加错误处理,仔细看我添加了On Error GoTo dateErr这句,如果有错误就直接执行dateErr那一步,然后是If函数,别忘了写 End If 哦~
Private Sub Form_Load()
Dim txtSQL As String
Dim MsgText As String
txtSQL = "select * from student_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText) '得到student表,并显示出来
On Error GoTo dateErr '如果有错误直接执行dateErr那一步
mrc.MoveFirst '游标移动到第一条信息中
Call viewData '调用函数
mcbookmark = mrc.Bookmark '做标记
mcclean = True '文本框无效
dateErr:
If Err = 3021 Then
MsgBox "没有数据"
End If
End Sub
感谢大家阅读.