Pues yo nunca he usado el data yo lo hago por ADO es asi:
En proyecto->Referenecias->selaccionas Microsoft Active Data Objects 2.xx
luego declaras
Public cn As New ADODB.Connection
Rs as New ADODB.Recordset
cn.open "Tu cadena de conexion"
set Rs =cn.execute("Tu select")
Y ya tienes el recorset los valores de la consulta para referenciarlos rs(0) Primer campo, rs(2)....., asi sucesivamente depende de tus campos que llamaste en el select o Rs!Nombredelcampo
Si devuelve varios registros te mueves con
Rs.MoveNext Siguiente Registro
Rs.MoveFirst Primer Registro
Rs.MoveLast Ultimo Registro
por ejemplo si vas a llenar Cajas de Texto con el resultado del recordset es asi:
Text1.text=Rs(0)
Text1.text=Rs!Campo1
Cuando salgas:
Set Rs=Nothing
Cn.Close
Saludos