Bueno no se como esta cargando el FlexGrid, pero supongamos que utilizas un RecordSet para ello, entonces para llenar el FlexGrid debes utilizar algo parecido a esto:'en el generalDim cnFarma As New ADODB.ConnectionDim rsPrecios As New ADODB.RecordsetPrivate Sub Form_Load()Set cnFarma = New ADODB.Connectionruta = App.Path + "DB.mdb"cnFarma.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + rutaSet rsPrecios = New ADODB.RecordsetrsPrecios.CursorLocation = adUseClientrsPrecios.Open "SELECT idarticulo,descripcion, precio FROM articulo order by descripcion", cnFarma, adOpenStatic, adLockReadOnlyrsPrecios.MoveFirstMSFlexGrid1.Rows = 1MSFlexGrid1.ClearMSFlexGrid1.FormatString = "<Codigo" & Space(20) & "|<Descripcion" & Space(20) & "|<Precio "Do While Not rsPrecios.EOF MSFlexGrid1.AddItem rsPrecios.Fields(0).Value & vbTab & rsPrecios.Fields(1).Value & vbTab & rsPrecios.Fields(2).Value rsPrecios.MoveNextLoopEnd Sub'y para trasladar los datos al datareport:Private Sub cmdImprimir_Click()On Error Resume NextWith dtrPrecios For fila = 1 To MSFlexGrid1.Rows - 1 For columna = 1 To MSFlexGrid1.Cols - 1 .Sections("Sección1").Controls("txtCodigo") = MSFlexGrid1.TextMatrix(fila, columna) .Sections("Sección1").Controls("txtDescripcion") = MSFlexGrid1.TextMatrix(fila, columna) .Sections("Sección1").Controls("txtPrecio") = MSFlexGrid1.TextMatrix(fila, columna) Next columna Next fila Set .DataSource = rsPrecios .ShowEnd WithEnd Sub'al descargar el formPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)rsPrecios.CloseSet rsPrecios = NothingEnd SubAhora si tienes en cuenta los nombres de los objetos en el DataReport todo este listo.Espero que te ayude....Suerte y un saludo<<_GIOMAR_>>