250分:listview索引超出边界?

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:14:54
下面程序错在哪里?请VB高手帮忙修改.
要实现的是以数据库记录为依据,实现listview图文同一行.

Private Sub Form_Load()
For i = 1 To 50
Image1.Picture = LoadPicture("D:\Program Files\Microsoft Visual Studio\VB98\dzb\a3.gif")
ImageList1.ListImages.Add i, , Image1.Picture
Next i
TreeView1.ImageList = ImageList1
For i = 1 To 15
TreeView1.Nodes.Add , tvwChild, "openfrm" & i, CStr(i), 1
j = j + 5
TreeView1.Nodes(i).Tag = "0" & CStr(j)
Next i

Dim sSQL As String
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\msd.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open "select * from texts where zxbz=1", cn, 3, 1
i = 0
rs.MoveFirst
Do While Not rs.EOF
id = CStr(rs("id"))
users = rs("addrs")

老朋友,还没解决啊?
"索引超出边界"是因为i=0这句.改为i=1就可以了.
其次:只用一张图片,不用
For i = 1 To 50
Image1.Picture = LoadPicture("D:\Program Files\Microsoft Visual Studio\VB98\dzb\a3.gif")
ImageList1.ListImages.Add i, , Image1.Picture
Next i
改作(取掉for...next):
Image1.Picture = LoadPicture("D:\Program Files\Microsoft Visual Studio\VB98\dzb\a3.gif")
ImageList1.ListImages.Add i, , Image1.Picture

3.以前的:
For i = 1 To 15
TreeView1.Nodes.Add , tvwChild, "openfrm" & i, CStr(i), 1
j = j + 5
TreeView1.Nodes(i).Tag = "0" & CStr(j)
next i
没用的话可以删除.
多次帮你还没有解决问题,实是对不起啊.

rs.Open "select * from texts where zxbz=1", cn, 3, 1
i = 1

TreeView1.Nodes(i).Tag = "0" & CStr(id)'这里提示索引超出边界
nodes(i)的最小下标是从1开始的
改为:TreeView1.Nodes(i+1).Tag = "0" & CStr(id)'这里提示索引超出边界