Meglio tardi che mai :-)

caricare la libreria Microsoft ActiveX Data Objects 2.6 Library non la 2.8

Public Shared Function ConvertToRecordset(inTable As DataTable) As ADODB.Recordset
Dim result As New ADODB.Recordset()
result.CursorLocation = ADODB.CursorLocationEnum.adUseClient


Dim resultFields As ADODB.Fields = result.Fields
Dim inColumns As System.Data.DataColumnCollection = inTable.Columns


For Each inColumn As DataColumn In inColumns
resultFields.Append(inColumn.ColumnName, TranslateType(inColumn.DataType), inColumn.MaxLength, IIf(inColumn.AllowDBNull, ADODB.FieldAttributeEnum.adFldIsNullable, ADODB.FieldAttributeEnum.adFldUnspecified), Nothing)
Next


result.Open(System.Reflection.Missing.Value, System.Reflection.Missing.Value, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, 0)


For Each dr As DataRow In inTable.Rows
result.AddNew(System.Reflection.Missing.Value, System.Reflection.Missing.Value)


For columnIndex As Integer = 0 To inColumns.Count - 1
resultFields(columnIndex).Value = dr(columnIndex)
Next
Next


Return result
End Function


Private Shared Function TranslateType(columnType As Type) As ADODB.DataTypeEnum
Select Case columnType.UnderlyingSystemType.ToString()
Case "System.Boolean"
Return ADODB.DataTypeEnum.adBoolean


Case "System.Byte"
Return ADODB.DataTypeEnum.adUnsignedTinyInt


Case "System.Char"
Return ADODB.DataTypeEnum.adChar


Case "System.DateTime"
Return ADODB.DataTypeEnum.adDate


Case "System.Decimal"
Return ADODB.DataTypeEnum.adCurrency


Case "System.Double"
Return ADODB.DataTypeEnum.adDouble


Case "System.Int16"
Return ADODB.DataTypeEnum.adSmallInt


Case "System.Int32"
Return ADODB.DataTypeEnum.adInteger


Case "System.Int64"
Return ADODB.DataTypeEnum.adBigInt


Case "System.SByte"
Return ADODB.DataTypeEnum.adTinyInt


Case "System.Single"
Return ADODB.DataTypeEnum.adSingle


Case "System.UInt16"
Return ADODB.DataTypeEnum.adUnsignedSmallInt


Case "System.UInt32"
Return ADODB.DataTypeEnum.adUnsignedInt


Case "System.UInt64"
Return ADODB.DataTypeEnum.adUnsignedBigInt


Case "System.String"
Return ADODB.DataTypeEnum.adVarChar


Case Else
Return ADODB.DataTypeEnum.adVarChar
End Select
End Function


Private Sub ToolStripButton1_Click_1(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click


Dim blah
blah = CreateObject("ReportMan.ReportManX")
blah.FileName = App_Path() & "\Fattura.rep"
blah.SetDatabaseConnectionString("DB", "PROVIDER=MSDataShape;Data PROVIDER=none;;;Jet OLEDBatabase Password=")
blah.SetRecordSet("RPGG", ConvertToRecordset(Me.BTFSQLDataSet.T_Fatture))
blah.SetRecordSet("RS2", ConvertToRecordset(Me.BTFSQLDataSet.T_FattDett))
blah.Preview = True
blah.ShowProgress = True
blah.ShowPrintDialog = True
blah.Title = "Fattura"
Application.DoEvents()
blah.Execute()
Application.DoEvents()
blah = Nothing
End Sub