|
Dim cnn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim cnnstr, SQL As String
Dim fhTotal, fh1, fh2, kpTotal, kp1, kp2, kp3, kp4, kp5, lbnr, lbkd As Variant
中间代码省略
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))
' MsgBox rs.Fields(fhTotal(i)), , fhTotal(i)
Next i
End If
End Sub
数据列表为Listview,fhTotal为数组(窗体LOAD时已定义),窗体控件都是对应数组来进行命名的,其他模块运行都没有什么问题。不明白为什么运行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)则可以全部显示出来,不会出现错误。搞得很是纳闷。使用的是SQL数据库,名称定义没有问题,添加、修改记录都成功。
错误提示为:在对应所需名称或序数的集合中,未找到项目。实时错误 '3265'
哪位能不能帮忙?急用!!! |
|