我动态构建了一个RecordSet,没有Connection.现在想用DataReport控件把这个记录集中的内容打印出来.如何处理?

解决方案 »

  1.   

    没有Connection能打开RecordSet吗?
      

  2.   

    可以:'************************************************
     
     '功能:从ListView的数据中构建一个RecordSet
     
     '************************************************
     Private Function GetRsFromListView(listV As ListView) As Recordset
     
     Dim Rs As Recordset
     
     Dim i As Integer, j As Integer
     
     Set Rs = New Recordset
     
     If listV.ListItems.Count = 0 Then
        
        Set Rs = Nothing
        Exit Function
     
     End If
     
     For i = 1 To listV.ColumnHeaders.Count
        
        With listV.ColumnHeaders(i)
            
            Rs.Fields.Append .Text, adBSTR
                
        End With
        
     Next i
     
     Rs.Open
      
     For j = 1 To listV.ListItems.Count
       
       With listV.ListItems(j)
             
            Rs.AddNew
            Rs.Fields(0) = .Text
            For i = 2 To listV.ColumnHeaders.Count
            
                Rs.Fields(listV.ColumnHeaders(i).Text) = .SubItems(i - 1)
                
            Next i
            
            Rs.Update
          
          
          
       End With
     
     Next j
     
     Set GetRsFromListView = Rs
     
     End Function
      

  3.   

    你可以设置一个记录集合,并且进行填充,再对datareport中间字段进行绑定就可以了
    象下面这个就是只有recordset的情况下填充3行数据,利用rs.append方法   Dim i As Integer
        For i = 0 To 2  '为Recordset三个字段,即为 DataGrid 添加三列
           Rs.Fields.Append "第" & i & "列", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
        Next i
        Rs.Open
        For i = 0 To 3
            Rs.AddNew '加四条记录
            Rs(0) = 1
            Rs(1) = 2
            Rs(2) = 3
        Next i