Para no depender de un DateEnvironment yo lo hago así.
1º- Creo mi Datareport como yo quiero y no asigno enlace a ningún campo.
Seguidamente desde mi formulario principal, el que trabaja con la base de datos (desde ADO) hago lo siguiente (esto es un copia-pega de un programa mio):
Private Sub generarvistaprevia_Click()
On Error GoTo hay_error
Dim rs As ADODB.Recordset
Dim Nombre_seccion As String
' llamar la función Create_Recordset
Set rs = Create_Recordset(presentacion) 'Esta función igual no la entiendes, es una función de Luciano
'para generar un recordset desde un listview... pásala por alto.
If Not rs Is Nothing Then
'Indicar en esta variable el nombre de la sección en la que se encuentran los rptTextBox para cada campo
Nombre_seccion = "detalle"
'Asignarle a los textbox del datareport, los DataField que corresponden a los nombres de encabezados
' With DataReport1
With vpreporte_reportedeejemplo
.Sections(Nombre_seccion).Controls.Item("Texto1").DataField = "CODIGO"
.Sections(Nombre_seccion).Controls.Item("Texto2").DataField = "INGREDIENTES"
.Sections(Nombre_seccion).Controls.Item("Texto3").DataField = "CANTIDAD"
.Sections(Nombre_seccion).Controls.Item("Texto4").DataField = "PRECIO"
.Sections(Nombre_seccion).Controls.Item("Texto5").DataField = "PESO"
' cambiar el caption del label Titulo
' .Sections("Sección4").Controls.item("lbltitulo").Caption = "Informe de formulario: " & Me.Caption
' Asignarle al datasource el origen de datos, es decir el recordset que devolvió la función Create_Recordset
Set .DataSource = rs
'Cargar y muestrar el informe
.Show vbModal
' Liberar los recursos
If rs.State = adStateOpen Then rs.Close
Set rs = Nothing
End With
End If
Espero que te sirva...
Pruébalo.
karmany