If Adodc1.Recordset.RecordCount > 0 Then
    For K = 1 To Adodc1.Recordset.RecordCount
            For i = 1 To 7         
              DataGrid1.Row = K - 1
              DataGrid1.Col = i - 1
              msgbox DataGrid1.Text
            Next i          Next K
end ifAdodc1.Recordset.RecordCount=100 
当k循环时候 
DataGrid1.Row = K - 1
k超过16了 就是第16条记录后
DataGrid1.Row 总是等于14
这是为啥呢  

解决方案 »

  1.   

    先用adodc的控制按钮试试看能不能到14以后的记录
      

  2.   

    点击 adodc的控制按钮 箭头可以移动 一直到100 的记录Private Sub Command1_Click()
    Dim k As Integer, Rstcount As Integer
    Rstcount = Adodc1.Recordset.RecordCountDataGrid1.Row = 44
    DataGrid1.Col = 0
    MsgBox DataGrid1.Text  //这里可以得到值 
     
        For k = 1 To Rstcount
            
               
            For i = 1 To 5
            
            DataGrid1.Row = 44 'K - 1 //但这里就是提示 invalid row number        DataGrid1.Col = 0 'i - 1
            Next
                
        NextEnd Sub
      

  3.   

    DataGrid1.Row得到的结果 总是等于14 
    原来14是datagrid显示的行数
    超过了 就 
    For k = 1 To Rstcount
     DataGrid1.Row 永远是 14
    .........我想得到所有行 第一列 单元格的数据怎么办呢
      

  4.   

    但为什么要用这种方法呢???怎么不直接读ado的recordset呢???
      

  5.   

    ado的recordset可以得到 呵呵
    我想用 For K = 1 To Adodc1.Recordset.RecordCount
                For i = 1 To 7         
                  DataGrid1.Row = K - 1
    就不能再次一个一个读取记录 读取表格会快点!
    谁知道DataGrid1.Row有问题算哟还是用直接读ado的recordset
      

  6.   

    Do While Not Frm_Storage_Search.Adodc1.Recordset.EOF
    ...取值 每次从头取起
    DataGrid就从第一行开始滚到最后一行
      

  7.   


    DataGrid1.Row = K - 1
    在可见范围内可以,到达不可见的行时就开始向下跳K-1行了。把
    DataGrid1.Row = K - 1
    改为
    DataGrid1.Row =1
    放在
    For i = 1 To 7
    之前,让它每次前进1行。For K = 1 To Adodc1.Recordset.RecordCount
        DataGrid1.Row =1
        For i = 1 To 7         
          DataGrid1.Col = i - 1
          msgbox DataGrid1.Text
        Next
    Next
    试试!