学生信息管理系统问题(一)
来源:互联网 发布:淘宝全球购资质查询 编辑:程序博客网 时间:2024/06/08 00:48
[TOC]
一、模块代码与登录窗体
问题一:子程序或函数未定义
解决:没有打冒号
executeSQL_error语句需要用“:”来引导下面的问题,总的来说还是敲代码的时候不认真
问题二:实时错误91,对象变量或with块变量未定义
解决:
未加双引号
是一个常见的问题,此处的对象只有mrc前面定义的一个recordset记录集,根本原因是数据库未连接,导致后面的recordset对象的EOF和BOF属性无效。
没有链接上数据库的原因,常见五种
- ODBC数据源没有配置好,导致VB与数据库链接不成功
数据库自身的配置管理器没有启动服务,导致数据库无法使用
企业管理器-安全性-登陆”这里面访问的默认数据库没有设为你要访问的数据库,在属性里面可以更改
模块处链接数据库代码的错误
SQL语句是否敲错
注意这里的符号分别为双引号、单引号+双引号、双引号+单引号+双引号。我就是出现了语句敲错的现象。
这段代码的意思是 从user_info表中查找用户编号的容,使之等于 txtusename中的内容
二、修改学籍窗体
问题一:错误91
又遇到这个问题
打开数据库连接时显示
ODBC数据源链接时显示
这个错误就是上面提到的数据库自身的配置管理器没有启动服务所致
解决:
问题二:类型不匹配
光标显示
类型不匹配错误,个人理解为等号两边的数据类型不能赋值。
即mrc的数据类型与 txtsql 和 msgtext的数据类型不匹配。
向上查找了一下,发现问题,改正之后可运行
问题三:实时错误3021 BOF或EOF中有一个是真,或当前的记录一被删除,所需要的操作需要一个当前的记录
无法修改记录集
错误原因:
由于系统中还未添加任何信息,没有可修改的内容,使得BOF(当前记录位于recordset对象的第一个记录之前)和EOF(当前记录位于recordset对象的最后一个记录之后)都为true,即数据库中没有记录。
解决办法:
1、添加错误处理
Private Sub Form_Load() Dim txtsql As String Dim msgtext As String 'SQL语句 txtsql = "select * from student_info" '执行查询操作 Set mrc = ExecuteSQL(txtsql, msgtext) On Error GoTo 1: '添加错误处理 mrc.MoveFirst '显示数据 Call viewdata '记录当前记录的位置 mybookmark = mrc.Bookmark '给标志赋值 mcclean = True1: If Err = 3021 Then MsgBox "没有学籍信息,无法修改!" unload Me End IfEnd sub
2、可加在MID主窗体上,即当点击菜单中“修改学籍信息”按钮时直接弹出提示框。
在主窗体上添加代码
Private Sub modifysinfoMenu_Click() Dim txtsql As String Dim msgtext As String Dim a 'SQL语句 txtsql = "select * from student_info" '执行查询操作 Set mrc = ExecuteSQL(txtsql, msgtext) If mrc.BOF And mrc.EOF Then a = MsgBox("没有学籍信息,无法修改!是否添加学籍信息?", 4 + 48, "提示") If a = 6 Then frmAddsinfo.Show Else End If Else frmModifysinfo.Show End IfEnd Sub'msgbox提示框中的个数字代表VB课本P62
3、在删除记录时,当全部删除记录也会报91的错误,原理和上面的一样,主要是要弄懂BOF与EOF的作用,详尽可看我的下一篇博客。
下面是对完全删除记录时报91错误的处理(创建错误处理)
Private Sub cmdDelete_Click() Dim str2$ Dim str1 '记下当前记录的位置 mybookmark = mrc.Bookmark '提示是否删除 str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录") On Error GoTo 1: '判断按钮类型 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 '注意一定要有exit sub1: Unload Me str1 = MsgBox("已无班级记录,是否添加班级信息?", vbOKCancel + vbQuestion, "问题:") If str1 = vbOK Then frmaddclassinfo.Show Else End IfEnd Sub
同理——修改密码、修改课程、修改班级、修改成绩窗体也可使用同样的解决办法。
问题四:实时错误-2147217887(80040e21)
原因是:多大数是输入的数据违反了数据库的约束条件、字段大小超过限制提交的数据个数、字段数据类型不匹配、自动编号指定了值、或者自动编号未作自动赋值、字段不允许为空值等。
我在修改学籍信息时,将出生日期输入的年份太早了,而数据库中日期字段的数据类型有一定的范围,使得两者不匹配所致。
对于日期字段的数据类型范围可以自己查一下。
未完待续……..
- 学生信息管理系统问题(一)
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统问题总结(一)
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统问题(一)
- 学生信息管理系统(一)
- 学生信息管理系统(一)
- 学生信息管理系统(一)
- 【总结】学生信息管理系统问题总结(一)
- 学生信息管理系统系列一:问题总结
- 学生信息管理系统 那些事儿(一)
- 学生信息管理系统小结(一)
- 学生信息管理系统总结(一)
- 学生信息管理系统(一)添加信息
- 学生信息管理系统系列博客(一)
- 学生信息管理系统错误集锦(一)
- 学生信息管理系统错误汇总(一)
- 【XSY1602】安全网络 树形DP 数学
- vue-cli+webpack前端使用后台接口跨域问题的多种解决及其原理和产生原因
- 高精度大整数模板
- pandas dataframe行和列的操作
- Numpy 使用详解
- 学生信息管理系统问题(一)
- hive导入和导出的几种方式
- 241. Different Ways to Add Parentheses
- Android -getApplicationContext和Context的区别
- python opencv入门 Harris角点检测(31)
- loadrunner Web_类函数之web_file()
- vue简介及其安装
- 线程的基本概念?线程的基本状态以及状态之间的关系
- Golang实现正方教务系统爬虫(一)