Private Sub mModylatency_Click()
    Dim intCount As Integer
    
    If flagEdit Then
        gintMode = 2
        If frmLatencyInquire.MSFlexGrid1.Rows > 1 Then
            
            intCount = frmLatencyInquire.MSFlexGrid1.Rows
            frmAddLatency.strSQL = "select * from latency_client where _ company_name='" & Trim(frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)) & "'"
          
            '单步运行到此,错误提示是:下标越界。                     
            frmAddLatency.Show
        Else
            Call mAddlatency_Click
        End If
    Else
        MsgBox "??????òaDT??μ?????£?", vbOKOnly + vbExclamation, "?ˉ??"
        frmAddLatency.strSQL = "select * from latency_client"
        frmAddLatency.Show
        frmAddLatency.ZOrder 0
    End IfEnd Sub
注:frmLatencyInquire    '有MSflexgrid控件的子窗体   
    mModylatency         'MDI窗体中下拉的窗体名
    mAddlatency          '添加信息的窗体名
    gintMode             '定义的布尔值, =2是修改,=1是添加

解决方案 »

  1.   

    你在错误前查一下控件的Rows,Cols属性。是不是列属性出界?
      

  2.   

    检查过没有啊。我在form_load里写好如下代码,应该可以避免的啊请高手指教,
      怎样才能避免这一情况
           
       with msflexgrid1          .FixedRows = 1
          
            For i = 0 To 11
                .ColAlignment(i) = 0
            Next i
          
            .FillStyle = flexFillRepeat
            .Col = 0
            .Row = 0
            .RowSel = 1
            .ColSel = .Cols - 1
            .CellAlignment = 4         .Row = 1
     
       end with
      

  3.   

    应该是frmLatencyInquire.MSFlexGrid1.Rows
    的问题
      

  4.   

    数据库内可能一列值都没有。所以当
    frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)取值时,就出现下标越界,建议查看一下数据库。
      

  5.   

    在frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)中
    .Rows是在if语句中已经作过判断了的,后面的那个1就不一定存在 。
      

  6.   

    有的,我检查过,而且我是先做添加的,已经在flexgrid里显示了,我是想在网格上面点鼠标右键弹出添加或者修改的菜单,选择后出现的是同一个窗体进行操作,            frmAddLatency.strSQL = "select * from latency_client where _ company_name='" & Trim(frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)) & "'
    太难理解了
      

  7.   

    那你再用下述语句查看一下:
    msgbox frmLatencyInquire.MSFlexGrid1.Rows
    看这个值在出错的时候到底是多少。把它写在出错的语句前。