como dijo coco, te falta rsCPadre.MoveNext...sino entra en bucle infinito....te recomiendo leer mas sobre ADO, la pagina de el guille es oro en eso...
saludos.
No no... bueno, creo que no me explique bien, asumí que diciendo solo "consulta jerárquica" se iba a entender y por eso solo puse el código del problema, creo que me expresé como USUARIO (de esos que todos odiamos jeje) me explicare correctamente.
Tengo una consulta jerárquica, Esta consulta me entrega datos de cabecera y detalle de una Factura, lo que me interesa y no consigo es poder recorrer el detalle, es decir la consulta hijo, necesito manipular el detalle para un tema externo, lo mas fácil seria hacer solo la consulta del detalle aparte de la consulta jerárquica pero eso me llevaría a hacer dos veces la misma consulta. Yo deseo saber si es posible recorrer la consulta detalle de una consulta jerárquica.
El código es:
Dim rsCD As New ADODB.Recordset
rsCD.StayInSync = False
rsCD.Open sql_PH(NumHead)), dB, 1, 1
Set MiReporte.DataSource = rsCD
MiReporte.Show 1
Esto va muy bien, el reporte (que es una Factura realmente) me pinta muy bien.
Ahora, por ejemplo, si antes de mostrar el reporte, hago rsCD.RecordCount siempre me va a mostrar un solo registro, y es correcto porque en NumHead pongo el codigo del documento. Este documento (Factura) tiene detalle, 10 o 15 items y quiero recorrerlos individualmente. Probe con:
Dim rsDet As Variant
rsDet = rsCD("Detalle").value
Que por allí leí que me serviría para recorrer el detalle, pero no lo he logrado, ya que rsDet.Recordcount no existe o rsDet.Field... tampoco.
Esta es mi interrogante. A continuación pongo la consulta jerárquica la cual va muy bien.
-----------------------------------------------------------------
---- aqui la funcion que me crea la consulta
---- esta funcion llama a otras dos, una para armar cabecera
---- y otra para armar detalle
Public Function sql_PH(CSP_ID As Double)
sql_PH = _
"SHAPE {" & sqlCSP(CSP_ID) & "} AS Cabecera " & _
"APPEND ({" & sqlCSP_DET & "} AS Detalle " & _
"RELATE CSP_ID to CSP_ID) AS Detalle"
'EL PH ES POR PADRE HIJO sqlCSP y sqlCSP_DET son otras dos consultas SQL que arman toda la consulta, esto funciona bien
End Function
-----------------------------------------------