首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决MSFlexGrid错误30006在VB6中的应用

如何解决MSFlexGrid错误30006在VB6中的应用
EN

Stack Overflow用户
提问于 2012-09-25 12:52:42
回答 1查看 6.6K关注 0票数 0

每次达到35万个单元时,MSFlexGrid就会给出这个30006的误差。

错误定义:

运行时错误“30006”: 无法为FlexGrid分配内存

我的代码示例:

代码语言:javascript
复制
Do While Not rs.EOF
    With MSFlexGrid1
        .Rows = .Rows + 1
        .TextMatrix(i, 1) = rs.Fields("1")    's1
        .TextMatrix(i, 2) = rs.Fields("2")    's2
        .TextMatrix(i, 3) = rs.Fields("3")    'f1
        .TextMatrix(i, 4) = rs.Fields("4")    'gr1
        .TextMatrix(i, 5) = rs.Fields("5")    'gr2
        .TextMatrix(i, 6) = rs.Fields("6")    'gr3
        .TextMatrix(i, 7) = rs.Fields("7")    'gr4
        .TextMatrix(i, 8) = rs.Fields("8")    'gr5
        .TextMatrix(i, 9) = rs.Fields("9")    'gr6
        .TextMatrix(i, 10) = rs.Fields("10")  'gr7
        .TextMatrix(i, 11) = rs.Fields("11")  'gr8
        .TextMatrix(i, 12) = rs.Fields("12")  'c1
        .TextMatrix(i, 13) = rs.Fields("13")  'g1
        .TextMatrix(i, 14) = rs.Fields("14")  's3
        .TextMatrix(i, 15) = rs.Fields("15")  'f2
        .CellAlignment = 4
        .TopRow = .Rows - 1
        .Refresh
    End With
    i = i + 1
    rs.MoveNext
Loop

我需要在MSFlexGrid中使用至少60万个单元,那么如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-26 13:45:18

代码语言:javascript
复制
'I got 15 columns so this makes 21874row * 15column = 328110 cells
'it blows at 21875th row so 328125th cell is not reachable
'for that reason i reset the grid so it keeps 
Do While Not rs.EOF
    With MSFlexGrid1
        If .Rows >= 21874 Then
            .Rows = 2
            .Clear
            i = 1
        End If
        .Rows = .Rows + 1
        .TextMatrix(i, 1) = rs.Fields("1")    's1
        .TextMatrix(i, 2) = rs.Fields("2")    's2
        .TextMatrix(i, 3) = rs.Fields("3")    'f1
        .TextMatrix(i, 4) = rs.Fields("4")    'gr1
        .TextMatrix(i, 5) = rs.Fields("5")    'gr2
        .TextMatrix(i, 6) = rs.Fields("6")    'gr3
        .TextMatrix(i, 7) = rs.Fields("7")    'gr4
        .TextMatrix(i, 8) = rs.Fields("8")    'gr5
        .TextMatrix(i, 9) = rs.Fields("9")    'gr6
        .TextMatrix(i, 10) = rs.Fields("10")  'gr7
        .TextMatrix(i, 11) = rs.Fields("11")  'gr8
        .TextMatrix(i, 12) = rs.Fields("12")  'c1
        .TextMatrix(i, 13) = rs.Fields("13")  'g1
        .TextMatrix(i, 14) = rs.Fields("14")  's3
        .TextMatrix(i, 15) = rs.Fields("15")  'f2
        .CellAlignment = 4
        .TopRow = .Rows - 1
        .Refresh
    End With
    i = i + 1
    rs.MoveNext
Loop
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12583361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档