为何提示数组下标越界??

fralee625 2003-11-14 10:09:38
我现在将两个记录集(分别是已经分班和未分班的学生,查询名字中带name1 的)加入的到一个MSHFlexGrid1中
为何系统总是提示我数组下标越界??请高手帮我看看!谢谢


以下是相关代码:

'以下是查询已经分班的学生
mysql = "select vxyxkeystudent.ClassSN,tbStudentBaseInfo.stdname,tbStudentBaseInfo.srid from

tbStudentBaseInfo,vxyxkeystudent where tbstudentbaseinfo.srid=vxyxkeystudent.srid AND tbStudentBaseInfo.StdName

like " & "'%" & name1 & "%'"
rs.Open mysql, cn, , , adCmdText

'设置表头
MSHFlexGrid1.TextMatrix(0, 0) = "学号"
MSHFlexGrid1.TextMatrix(0, 1) = "学生姓名"
MSHFlexGrid1.TextMatrix(0, 2) = "学籍号"
'添加已经分班学生的数据
Dim i As Long
Dim t As Long 't用来记载循环到第几行了,作个标记

i = 1 '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 0) = Trim(rs!ClassSN)
i = i + 1
rs.MoveNext
Wend
End If
t = i

i = 1 '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 1) = Trim(rs!stdname)
i = i + 1
rs.MoveNext
Wend
End If

i = 1 '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 2) = Trim(rs!srid)
i = i + 1
rs.MoveNext
Wend
End If


rs.Close
Set rs = Nothing


'以下是查询未分班的学生
mysql = "SELECT tbStudentBaseInfo.stdname, tbStudentBaseInfo.srid FROM tbStudentBaseInfo WHERE

tbStudentBaseInfo.srid not in " & "(" & "select distinct srid from tbStudentClass" & ")" & "AND

tbStudentBaseInfo.StdName like " & "'%" & name1 & "%'"
'添加未分班学生的数据
rs.Open mysql, cn, , , adCmdText

i = t '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 0) = "未分班" '*********************此行出错,“下标越界”???????
i = i + 1
rs.MoveNext
Wend
End If

i = t '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 1) = Trim(rs!stdname)
i = i + 1
rs.MoveNext
Wend
End If

i = t '初始化i
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
While Not rs.EOF
MSHFlexGrid1.TextMatrix(i, 2) = Trim(rs!srid)
i = i + 1
rs.MoveNext
Wend
End If


rs.Close
Set rs = Nothing
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fralee625 2003-11-14
  • 打赏
  • 举报
回复
问题已解决,多谢小马哥!
yoki 2003-11-14
  • 打赏
  • 举报
回复
或者在循环外加
mshflexgrid1.rows=rs!recordcounts+1
yoki 2003-11-14
  • 打赏
  • 举报
回复
因为你不停的在加纪录,当纪录数超过开始的rows数(网格的总行数)时就会报错
yoki 2003-11-14
  • 打赏
  • 举报
回复
开头加上mshflexgrid1.rows=1

While Not rs.EOF
mshflexgrid1.rows=mshflexgrid1+1 '加上它
MSHFlexGrid1.TextMatrix(i, 0) = "未分班" '*********************此行出错,“下标越界”???????
fralee625 2003-11-14
  • 打赏
  • 举报
回复
代码是长,但是结构并不复杂
我也知道 是t值的问题
现在我的意图就是将两个记录集分别加入的到一个MSHFlexGrid1,有谁作过类似的程序,在第二个记录集中如何处理累加的参数呢?
victorycyz 2003-11-14
  • 打赏
  • 举报
回复
代码太长,不想看。

原因多半是因为你的t的值设置不合理。自己调试一下看。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧