#一、实时错误’91’
1.链接数据库有问题
(1)服务管理器没有启动服务
(2)数据源(ODBC)里面“文件DSN”里有添加数据库
(3)“企业管理器-安全性-登陆”这里面访问的默认数据库没有设为你要访问的数据库,在属性里面可以更改
2.SQL语句书写有问题
(1) txtsql = "select * from class_info",这行代码的最后多了一个空格
(2) 在执行查询学生学籍信息的窗体中,执行语句txtSQL = "select * from result_Info where",因为后面还要添加条件,所以在'where'和‘ " ’之间缺少空格时会出错。
(3) 在代码里“select*from ”这后面应该接的是表的名字,而不是数据库名
(4) 在一句完全的查询语句中,比如 txtSQL = "select * from class_Info where class_No='" & Trim(txtClassno.Text) & "'",其中在最后判断输入框中的条件时,双引号和单引号一定要注意(整句话的引号从外到内一共分三层:双引号,单引号,双引号),不能破坏其顺序层次。
其实,只要出了91就是数据库及其相关部分出了问题,这时候只要把跟数据库有关的部分检查一遍,基本上就能排除问题了。
#二、实时错误424
错误424,出现的原因是对象不存在或对象命名错误。
我的错误原因是控件的命名与代码不一致,将控件的名称改一下就可以了
三、实时错误3021
在删除最后一条记录时报错
【1】主窗体的菜单项里
Private Sub modifysinfo_Menu_Click()
txtSQL = "select * from student_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.RecordCount = 0 Then
str2 = MsgBox("记录集为空,是否现在填写?( ⊙o⊙?) ", vbOKCancel, "提示")
If str2 = vbOK Then
frmAddsinfo.Show
Else
Exit Sub
End If
Else
frmModifysinfo.Show
End If
End Sub
【2】删除按钮
Private Sub deleteCommand_Click()
myBookmark = mrc.Bookmark
str2 = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
On Error GoTo gperror
If str2 = vbOK Then
mrc.MoveNext
If mrc.EOF Then
mrc.MoveFirst
myBookmark = mrc.Bookmark
mrc.MoveLast
mrc.Delete
mrc.Bookmark = myBookmark
Call viewData
Else
myBookmark = mrc.Bookmark
mrc.MovePrevious
mrc.Delete
mrc.Bookmark = myBookmark
Call viewData
End If
Else
mrc.Bookmark = myBookmark
Call viewData
End If
Exit Sub
gperror:
MsgBox "已经没有记录了,窗口即将关闭!", vbOKOnly + vbInformation, "提示"
Unload Me
str1 = MsgBox("记录都删没了,还添加吗?", vbOKCancel + vbQuestion, "问题:")
If str1 = vbOK Then
frmAddsinfo.Show
End If
End Sub
其它窗体类似,只需修改其中一小部分代码即可。
#三、实时错误’-2147217887
填的数据不符合或者没有转换成数据库相应字段的数据类型或约束。添加学号和电话的时候,字符长度超出了表的限制。我输入的学号和电话号码的字符长度是11,而表里限定的长度是10位。
但是更改char后,又出现如下问题:
解决办法如下:
打开SQL Server工具-选项-设计器,勾选“阻止保存要求重新创建表的更改”这一选项就可以更改了。