Vb6 运行时错误';6';:Visual Basic

Vb6 运行时错误';6';:Visual Basic,vb6,Vb6,我正在使用Visual Basic 6 我有以下代码结构: FuncinInfo是一个结构 Public funcTable() As FUNCNINFO ----- ------ ReDim Preserve funcTable(0 To upsize + ns) 当(upsize+ns)的值超过32766时,将出现运行时溢出错误“6” 您知道原因和解决方案吗?VB6的整数类型是16位,因此无法存储值>32767,其长是32位整数类型,因此以下操作将起作用 Dim upsize As Lon

我正在使用Visual Basic 6
我有以下代码结构:
FuncinInfo是一个结构

Public funcTable() As FUNCNINFO
-----
------
ReDim Preserve funcTable(0 To upsize + ns)
当(upsize+ns)的值超过32766时,将出现运行时溢出错误“6”
您知道原因和解决方案吗?

VB6的
整数类型是16位,因此无法存储值>32767,其
是32位整数类型,因此以下操作将起作用

Dim upsize As Long
Dim ns As Long

upsize = 32766
ns = 12345

ReDim Preserve funcTable(0& To upsize + ns)

VB6的
Integer
类型为16位,因此无法存储大于32767的值,其
Long
为32位整数类型,因此以下操作将起作用

Dim upsize As Long
Dim ns As Long

upsize = 32766
ns = 12345

ReDim Preserve funcTable(0& To upsize + ns)

我发现是数据库出错了。我没有对错误的确切位置进行故障排除,只是在更新的错误之前进行了备份,它工作正常

我发现是数据库出现了错误。我没有对错误的确切位置进行故障排除,只是在更新错误之前进行了备份,结果正常

upsize
还是
ns
ints还是longs?如果幸运的话,这只是16位int限制(虽然通常是32767),但如果这是一个数组大小限制,我不会感到惊讶。你真的需要这么大的函数表吗?是整数还是长整数?如果幸运的话,这只是16位int限制(虽然通常是32767),但如果这是一个数组大小限制,我不会感到惊讶。你真的需要这么大的桌子吗?嗨,谢谢。。请注意,upsize和ns的单个值并没有超过整数的大小,而是存在超过的组合。在我的示例中也没有,如果它们都声明为整数(或根本没有声明),则Rup中会出现错误6溢出,是的,这是实际场景中的数组大小限制。@Pradeep我认为Alex是正确的(+1 Alex)。请尝试更改您的代码,看看它是否解决了问题,并让我们知道发生了什么。如果不想更改变量的类型,可以编写
ReDim Preserve funcTable(0到CLng(升迁)+CLng(ns))
Hi谢谢。。请注意,upsize和ns的单个值并没有超过整数的大小,而是存在超过的组合。在我的示例中也没有,如果它们都声明为整数(或根本没有声明),则Rup中会出现错误6溢出,是的,这是实际场景中的数组大小限制。@Pradeep我认为Alex是正确的(+1 Alex)。请尝试更改您的代码,看看它是否解决了问题,并让我们知道发生了什么。如果不想更改变量的类型,可以编写
ReDim Preserve funcTable(0到CLng(升迁)+CLng(ns))