VB 实时错误3265

[复制链接]
查看11 | 回复3 | 2008-12-11 22:14:47 | 显示全部楼层 |阅读模式
Private Sub 数据列表_ItemClick(ByVal Item As MSComctlLib.ListItem)
'
On Error Resume Next

Dim i As Integer

序号.Text = 数据列表.SelectedItem

SQL = "select * from 销售数据 where 序号=" & 序号.Text

Set rs = New ADODB.Recordset

rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic

If rs.BOF And rs.EOF Then

For i = 0 To UBound(fhTotal)

Me.Controls(fhTotal(i)).Text = ""

Next

Else

For i = 1 To UBound(fhTotal)

Me.Controls(fhTotal(i)).Text = rs.Fields(fhTotal(i))

Next i

End If
End Sub
fhTotal定义为数组,窗体中的控件都是按照数组来进行命名的。
运行Me.Controls(fhTotal(i)).Text = rs.Fields(fhTotal(i))这段代码到i=10的时候就出现错误,很是纳闷。
因为把Me.Controls(fhTotal(i)).Text = rs.Fields(fhTotal(i))改为MsgBox rs.Fields(fhTotal(i)), , fhTotal(i)的时候,所有的字段都可以弹出来,不知道什么原因呢?

回复

使用道具 举报

千问 | 2008-12-11 22:14:47 | 显示全部楼层
Me.Controls(fhTotal(i)).Text控件名中的数字序列不能直接用数组代替!我的建议是,定义一个对象类型的数组,把所有控件赋值给这个数组比如:dim arr() as object ={textbox1,textbox2,textbox3}以后如果要使用textbox1控件,直接用arr(0)代替,比如arr(0).text这样的形式是允许的!因为arr(0)本身指的就是textbox1控件!...
回复

使用道具 举报

千问 | 2008-12-11 22:14:47 | 显示全部楼层
销售数据 where 序号=" & 序号.Text...
回复

使用道具 举报

千问 | 2008-12-11 22:14:47 | 显示全部楼层
Me("Text" & i).Text = rs.Fields(fhTotal(i)) 即可...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行