| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 484 人关注过本帖
标题:VB6.0高手帮忙看看,下标越界,程序哪里有问题。
只看楼主 收藏
duweixun1987
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-3-14
结帖率:0
  已结贴   问题点数:20  回复次数:4   
VB6.0高手帮忙看看,下标越界,程序哪里有问题。


' *
' * (c) Copyright 1997 Yokogawa Electric Corporation
' *
' * system       : CS1000
' * sub-system   : HIS
' * description  : OCX sample
' *

Option Explicit
Option Base 0

Const MaxTagItems = 37&              ' Number of tag name - 1


'
' Get process data
'
Private Sub cmdGetData_Click()


Dim TagItems(MaxTagItems) As String     ' TagNames


Dim i As Integer                        ' Work
Dim Values As Variant                   ' Process value



' Set up item information
    TagItems(0) = "LRCA1101.PV"
    TagItems(1) = "PRA1714.PV"
    TagItems(2) = "LRA1715.PV"
    TagItems(3) = "TR1734.PV"
    TagItems(4) = "PRA8101A.PV"
    TagItems(5) = "LRA8101A.PV"
    TagItems(6) = "TRA8101A.PV"
    TagItems(7) = "PRA8101B.PV"
    TagItems(8) = "LRA8101B.PV"
    TagItems(9) = "TRA8101B.PV"
    TagItems(10) = "PRA8101C.PV"
    TagItems(11) = "LRA8101C.PV"
    TagItems(12) = "TRA8101C.PV"
    TagItems(13) = "PRA8101D.PV"
    TagItems(14) = "LRA8101D.PV"
    TagItems(15) = "TRA8101D.PV"
    TagItems(16) = "PRA8101E.PV"
    TagItems(17) = "LRA8101E.PV"
    TagItems(18) = "TRA8101E.PV"
    TagItems(19) = "PRA8101F.PV"
    TagItems(20) = "LRA8101F.PV"
    TagItems(21) = "TRA8101F.PV"
    TagItems(22) = "PRA8101G.PV"
    TagItems(23) = "LRA8101G.PV"
    TagItems(24) = "TRA8101G.PV"
    TagItems(25) = "PRA8102.PV"
    TagItems(26) = "LRA8102.PV"
    TagItems(27) = "TRA8102.PV"
    TagItems(28) = "PRA8103.PV"
    TagItems(29) = "LRA8103.PV"
    TagItems(30) = "TRA8103.PV"
    TagItems(31) = "PRA8104.PV"
    TagItems(32) = "LRA8104.PV"
    TagItems(33) = "TRA8104.PV"
    TagItems(34) = "PRA8105.PV"
    TagItems(35) = "LRA8105.PV"
    TagItems(36) = "TRA8105.PV"
   
   
   
   
   

' Get process data
CENTUM1.StationName = txtHostName
CENTUM1.GetTagQuality = False
CENTUM1.Transpose = False
Values = CENTUM1.GetTagData(TagItems)





' Write process data
 
 data1.Recordset.Update
 data1.Recordset("LRCA1101") = Values(0)
 data1.Recordset("PRA1714") = Values(1)
 data1.Recordset("LRA1715") = Values(2)
 data1.Recordset("TR1734") = Values(3)
 data1.Recordset("PRA8101A") = Values(4)
 data1.Recordset("LRA8101A") = Values(5)
 data1.Recordset("TRA8101A") = Values(6)
 data1.Recordset("PRA8101B") = Values(7)
 data1.Recordset("LRA8101B") = Values(8)
 data1.Recordset("TRA8101B") = Values(9)
 data1.Recordset("PRA8101C") = Values(10)
 data1.Recordset("LRA8101C") = Values(11)
 data1.Recordset("TRA8101C") = Values(12)
 data1.Recordset("PRA8101D") = Values(13)
 data1.Recordset("LRA8101D") = Values(14)
 data1.Recordset("TRA8101D") = Values(15)
 data1.Recordset("PRA8101E") = Values(16)
 data1.Recordset("LRA8101E") = Values(17)
 data1.Recordset("TRA8101E") = Values(18)
 data1.Recordset("PRA8101F") = Values(19)
 data1.Recordset("LRA8101F") = Values(20)
 data1.Recordset("TRA8101F") = Values(21)
 data1.Recordset("PRA8101G") = Values(22)
 data1.Recordset("LRA8101G") = Values(23)
 data1.Recordset("TRA8101G") = Values(24)
 data1.Recordset("PRA8102") = Values(25)
 data1.Recordset("LRA8102") = Values(26)
 data1.Recordset("TRA8102") = Values(27)
 data1.Recordset("PRA8103") = Values(28)
 data1.Recordset("LRA8103") = Values(29)
 data1.Recordset("TRA8103") = Values(30)
 data1.Recordset("PRA8104") = Values(31)
 data1.Recordset("LRA8104") = Values(32)
 data1.Recordset("TRA8104") = Values(33)
 data1.Recordset("PRA8105") = Values(34)
 data1.Recordset("LRA8105") = Values(35)
 data1.Recordset("TRA8105") = Values(36)

 
 
 
 
 
 
 
 
 

Exit Sub

' Error exit
ERR_EXIT:
MsgBox "ERROR"

End Sub

Private Sub cmdStopData_Click()
tmr = False
End Sub

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Command2_Click()
tmr = True
End Sub


Private Sub Label10_Click()

End Sub

Private Sub tmr_Timer()
cmdGetData.Value = True
End Sub


Private Sub Timer1_Timer()
cmdGetData.Value = True

End Sub
附件: 您没有浏览附件的权限,请 登录注册
2018-03-14 15:28
ictest
Rank: 2
等 级:论坛游民
帖 子:214
专家分:77
注 册:2010-2-17
  得分:7 
我曾经遇到这种问题,当时的情况是数据源没有那么多项目,而用来显示的label数量多,分配的数据不够,所以就报这个错误,估计会不会也是这种问题。

例如,我的程序里有这么一段:

程序代码:
Open (App.Path & "\" & "参数.csv") For Input As #1
        Do While Not EOF(1)
        Line Input #1, temp1
         If InStr(temp1, Label5.Caption) <> 0 Then
         tmp1 = Split(temp1, ",")
For z = 0 To 19
Label6(z) = tmp1(z + 2)
Next z

格子一共有20个,但数据行被“,”分隔的数据一共有21个,分配的时候格子1分配的是数据3,格子2分配的是数据4,格子3分配的是数据5..........格子20分配的是数据22,这样就报错了。

你再查查看,不知道是不是这个原因。
2018-03-14 16:54
duweixun1987
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-3-14
  得分:0 
回复 2楼 ictest
我把这里Const MaxTagItems = 37& 改大了,还是不行!报同样的错
2018-03-14 16:58
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:85
帖 子:905
专家分:5207
注 册:2015-8-10
  得分:7 
“下标越界”错误一般比较好查,就是字面意思超过了上下限,
比如前面定义dim a(2) as double,但是后面用到了a(3)。
你这段代码初步看没有发现明显的问题,但是显然不全,别人就是拷过去也无法调试(同时不建议这样贴代码,很长看起来很麻烦,还不全)
建议你在报错中断时,对报错语句的主要变量添加监视,尤其是数组,看看是否超过了上下限
2018-03-14 17:24
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:95
帖 子:4173
专家分:28620
注 册:2009-4-8
  得分:7 
CENTUM1是什么?

无知
2018-03-16 00:57







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039904 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved