Private Sub ShowData()
    
    Dim j As Integer
    Dim i As Integer
    Dim MsgText As String  
    Set mrc = ExecuteSQL(txtSQL, MsgText)
        With msgList
        .Rows = 1
        
        Do While Not mrc.EOF
            .Rows = .Rows + 1
            For i = 1 To mrc.Fields.Count
                If Not IsNull(Trim(mrc.Fields(i - 1))) Then
                Select Case mrc.Fields(i - 1).Type
                    Case adDBDate
                        .TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & "", "yyyy-mm-dd")
                    Case Else
                        .TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & ""
                End Select
                End If
            Next i
            mrc.MoveNext
        Loop
        
          
    End With
    mrc.Close
    
    
End Sub
这个是商品进销存管理系统的销售定单录入模块的showdata代码,可是运行时候提示:
实时错误"91"
对象变量或with块变量未设置.
这个是什么原因,我原先运行的时候提示.TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & ""越过下界,结果不能正确显示表的内容,高手能帮我看一下吗?

解决方案 »

  1.   

    对象变量或with块变量未设置.
    是不是对象没有引用或初始化
      

  2.   

    你运行时看看,是提示哪个对象无效,在查看,我看了一下你的代码,好象执行SQL语句都是用命令对象和连接对象来执行吧 CON,CMMMAND
      

  3.   

    CON。ExecuteSQL(txtSQL, MsgText)
      

  4.   

    但是这段代码放在其他地方,比如用来显示客户信息就什么错误都没有了,怎么会这样哦,楼上的,用了con还是一样报告错误的~
      

  5.   

    如果不用Do While Not mrc.EOF..能不能用其他办法来实现这个过程啊
      

  6.   

    报错的是Do While Not mrc.EOF这一行,就是提示对象变量或with变量未设置,郁闷啊
      

  7.   

    For i = 1 To mrc.Fields.Count
    这句错了吧,应该是从0开始的
    这样试试看
    For i = 0 To (mrc.Fields.Count -1)
      

  8.   

    ExecuteSQ()他肯定是个过程或是个函数
    你的MRC记录集有问题,你设置断点看看,数据库记录能否取出!
    你要给出全代码!
      

  9.   

    经过验证是数据库表的字段少了一个,晕死,但是现在报错是Case Else
                            .TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & ""
    下标越界,这个怎么解决哦
      

  10.   


    '显示Grid表头
    Private Sub ShowTitle()
        Dim i As Integer
        
        With msgList
            .Cols = 11
            .TextMatrix(0, 1) = "销售订货单编号"
            .TextMatrix(0, 2) = "日期"
            .TextMatrix(0, 3) = "业务员"
            .TextMatrix(0, 4) = "客户代码"
            .TextMatrix(0, 5) = "商品编号"
            .TextMatrix(0, 6) = "期号"
            .TextMatrix(0, 7) = "数量"
            .TextMatrix(0, 8) = "出货单价"
            .TextMatrix(0, 9) = "折扣"
            .TextMatrix(0, 10) = "总金额"
            .TextMatrix(0, 11) = "备注信息"
            
           
            
            '固定表头
            .FixedRows = 1
                    
            '设置各列的对齐方式
            For i = 0 To 10
                .ColAlignment(i) = 0
            Next i
            
            
            '表头项居中
            .FillStyle = flexFillRepeat
            .Col = 0
            .Row = 0
            .RowSel = 1
            .ColSel = .Cols - 1
            .CellAlignment = 4
            
            '设置单元大小
            .ColWidth(0) = 1000
            .ColWidth(1) = 1000
            .ColWidth(2) = 2000
            .ColWidth(3) = 1000
            .ColWidth(4) = 1000
            .ColWidth(5) = 1000
            .ColWidth(6) = 1000
            .ColWidth(7) = 1000
            .ColWidth(8) = 1000
            .ColWidth(9) = 1000
            .ColWidth(10) = 1000
            .ColWidth(11) = 1000
            .Row = 1
            
        End With
    End Sub