可以参考一下 
Private iRow As Integer 
Private Sub ActiveReport_DataInitialize() 
    With Me.Fields 
        .Add "pdno" 
        .Add "pno" 
        .Add "pname" 
        .Add "psizes" 
        .Add "unitdesci" 
    End With 
    iRow = 1 
End Sub Private Sub ActiveReport_FetchData(eof As Boolean) 
    Static j As Long 
    If iRow > m_Grid.Rows - 1 Then 
        eof = True 
        Exit Sub 
    End If 
    
    j = j + 1 
    PageBreak1.Enabled = IIf(j Mod 15 = 0, True, False) '强制分页 15行/页 
    
    Fields("pdno") = m_Grid.TextMatrix(iRow, 1) 
    Fields("pno")= m_Grid.TextMatrix(iRow, 3) 
    Fields("pname") = m_Grid.TextMatrix(iRow, 4) 
    Fields("psizes") = m_Grid.TextMatrix(iRow, 5) 
    Fields("unitdesci") = m_Grid.TextMatrix(iRow, 6) 
    eof = False 
    iRow = iRow + 1 
End Sub
这是您给我回的贴 我现在的问题是 我在一个窗体里有4个表格控件 在ActiveReport报表里如何读取4个表格里的数据呢?一个表格的读取按照您的办法可以了,请您在给我指点一下啊,谢谢了。

解决方案 »

  1.   

    简单点可以用一个数组,
    把四个表格里的数据按需求填入一个数组,此处的m_grid就可以换成这个数组了.
      

  2.   

    Private iRow As Integer 
    dim a(100,4) as string public sub InitData()
        '填充数组
    end subPrivate Sub ActiveReport_DataInitialize() 
        With Me.Fields 
            .Add "pdno" 
            .Add "pno" 
            .Add "pname" 
            .Add "psizes" 
            .Add "unitdesci" 
        End With 
        iRow = 0 
    End Sub Private Sub ActiveReport_FetchData(eof As Boolean) 
        Static j As Long 
        If iRow > 100 Then 
            eof = True 
            Exit Sub 
        End If 
        
        j = j + 1 
        PageBreak1.Enabled = IIf(j Mod 15 = 0, True, False) '强制分页 15行/页 
        
        Fields("pdno") = a(irow,0)
        Fields("pno")= a(irow,1) 
        Fields("pname")= a(irow,2)
        eof = False 
        iRow = iRow + 1 
    End Sub 不用客气,
    我这里没法测试运行,就大概给个思路,请自己改一下了.