Este es un ejemplo concreto de lo que tienes que hacer, este code es de un proyecto mio pero te puede servir de referencia.
Dim Criteria, StrSQL As String
res = MsgBox("Desea Imprimir La Factura Actual?" & vbCrLf & _
"Seleccione: Si/No", vbYesNo, "IMPRIMIR")
If res = vbNo Then Exit Sub
Set rsInvoiceItems = New ADODB.Recordset
StrSQL = "SELECT factura.numfac, factura.ciu, factura.dircli, factura.dpt," & _
"factura.fecfac, factura.fecven, factura.nit, factura.nomcli, factura.pla," & _
"factura.razsoc, factura.tel, factura.tipcli, factura.valtot, productos_factura.precio," & _
"productos_factura.canfac, productos_factura.numfac AS Expr1, productos_factura.codpro," & _
"Producto.nampro, Producto.prepro, productos_factura.subtot, factura.cantot, factura.des," & _
"factura.fecpropag, factura.percent, factura.tra FROM factura, productos_factura," & _
"Producto WHERE factura.numfac = productos_factura.numfac AND productos_factura.codpro = Producto.codpro"
' EN LA VARIABLE StrSQL REALIAMOS LAS CONSULTAS SOBRE LOS REGISTROS MEDIANTE SQL
With rsInvoiceItems
Criteria = "numfac='" & Trim(text1.text) & "'" ' EN ESTE CASO LO QUE VOY A CONSULTAR SON LOS DATOS DE UNA FACTURA
' HAGO LA BUSQUEDA DEL ID: NUMFAC
.Open StrSQL, ActiveConnection:=DE.CnPanamericana, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
' DE es el objeto DataEnvironment y CnPanamericana es la conxion a la base de datos
.Filter = Criteria
If .EOF Then
MsgBox "No Existe El registro", _
vbInformation, "No se encontró el dato"
.Close
Else
DATAREPORT1.DataMember = rsInvoiceItems
DATAREPORT1.PrintReport
Unload DATAREPORT1
.Close
End If
End With