读书人

quot;数据库quot;之quot;学生信息管理系统quot;中那些quot;

发布时间: 2013-10-08 16:46:23 作者: rapoo

"数据库"之"学生信息管理系统"中那些"小"问题、(二)

相比之下这篇博客来的晚了些、也不知道最近在忙什么,时间就不知不觉的找不到了...

继之前的 “ "数据库"之"学生信息管理系统"中那些"小"问题(一)” 咱们继续完善在敲 学生管理系统中遇到的种

种问题,帮别人也帮自己、

1、ByRef 参数类型不符,编译错误、

出现这种问题可能会有很多种情况,我遇到的是 “上下不匹配” 、下面进行分析、

1。传递参数未定义类型,假如参数在调用前未定义类型,系统自动将他定义为variant类型,由于和过程或函数

中的对就参数类型不相同,所以提示"byref参数类型不符"



2。传递参数类型已定义,但由于定义方法不对,所以提示"byref参数类型不符"。具体情况如下:

当vb中如此定义变量时,将会出现以上错误信息的出现



private sub command1_click()
dim i , j as integer
i = 3
j = 4


call get1(i, j)
text1.text = i


end sub

private sub get1(byref para1 as integer, para2 as integer)
para1 = para1 + para2


end sub

假如将 dim i , j as integer 改为

dim i as integer

dim i as integer

程式执行正常。也就是说,第一种方法的变量定义,只是对 j 做了定义,并未对前面的 i 进行定义



一般在过程和函数中定义参数时采用byref,则需要参数声明的类型和实际参数的类型完全相同,否则vb就会报告错误。可以参考资料:http://www.sudu.cn/info/html/edu/net/20071226/24393.html

2、实时错误 ' 340 ' :

控件数组元素 ’ 2' 不存在

已存在的控件数组中没有引用的索引值所指定的控件。

对存在元素的其中之一,把 Index 属性的设置改为所引用的值。或者使用 Load 语句,向数组中添加一个控件,

该控件的索引等于此值,然后再引用此索引值。

再者,就是你的控件与代码是不符合的,让其保持一致性、

3、实时错误 ‘91’:对象变量或With块变量未设置

在frmSetcourseinfo中

Private Sub comboGrade_Click()

Dim mrc As ADODB.Recordset

Dim txtSQL As String

Dim MsgText As String

Dim i As Integer

listSelectcourse.Clear

txtSQL = "select * from gradecourse_Info where grade='" & comboGrade.Text & "'"

没有查询出数据结果,查询语句出现了问题、

错误原因: 缺少语句 Set mrc = ExecuteSQL(txtSQL, MsgText)

4、实时错误 ’ 3201 ’ :

BOF 或 EOF 中 有一个是 “真” , 或者当前的记录已被删除,所需的操作要求一个当前的记录。

先看这样一段错误的代码代码

Private SubcmdPre_Click()

If mrc.BOF = True Then

mrc.MoveLast

Else

mrc.MovePrevious

End If

CallViewData

End Sub

为什么会出错呢,我们来分析一下.当指针指向第一条记录的时候,if条件不成立,所以会执行mrc.MovePrevious,

此时指针指向第一条记录之前,callviewdata时出错.

(“偷”的 “海燕学姐的”)

所以正确的程序应该是这样的:

Private SubcmdPre_Click()

mrc.MovePrevious

If mrc.BOF = True Then

mrc.MoveLast

End If

Call ViewData

End Sub

先到这里、后续.....

读书人网 >其他数据库

热点推荐