注册 登录
编程论坛 VB6论坛

求助! datagrid 下标越界!

mingming2288 发布于 2014-06-03 22:09, 470 次点击
Option Explicit
Dim rs1 As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim i As Integer
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
For i = 0 To text1.UBound
   Text1(i) = DataGrid1.Columns(i)
Next
End Sub

Private Sub Form_Activate()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=E:\djda.mdb;Persist Security Info=flase"
Adodc1.RecordSource = "select * from tddjtz"
Set DataGrid1.DataSource = Adodc1
End Sub
说明 :text1数组空间的个数是0到14,datagrid有列数也是0到14.
个人感觉,应该是程序加载时顺序的问题,但不知道怎么改!谢

[ 本帖最后由 mingming2288 于 2014-6-3 22:10 编辑 ]
5 回复
#2
xzlxzlxzl2014-06-04 12:51
经验证,代码没问题,检查你的数据库字段吧。
#3
alike1232014-06-04 12:57
text1数组空间的个数是0到14,datagrid有列数是1到14.
for i=1 to 14
就是这么改!谢

#4
mingming22882014-06-04 16:09
2楼,可否详细说一下,和数据里的字段有什么关系?数组控件和数据中的字段是一样的。
3楼,你确定?
#5
xzlxzlxzl2014-06-04 17:45
datagrid也是从0列开始计的。
如果是datagrid下标越界,可以确定是datagrid列数少于text控件数组数,你可以反过来写,用datagrid的列数来循环,代码如下:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
   For i = 0 To DataGrid1.Columns.Count - 1
     Text1(i) = DataGrid1.Columns(i)
   Next
End Sub
#6
mingming22882014-06-04 20:59
问题已经按xzlxzlxzl解决了,谢谢!
原来换个思路,初学者,谢谢帮助
1