Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2011, 11:05
shashas
 
Fecha de Ingreso: agosto-2007
Mensajes: 77
Antigüedad: 17 años, 3 meses
Puntos: 0
Recordset dentro de otro

Hola a todos. Hace tiempo que postée un tema similar al que me ocurre y no le pude encontrar solucón..

Veran lo que necesito es que mi aplcacion mientras está recorriendo un recordset, haga otro dependiendo del valor de un campo.

Un ejemplo seria

rs.Source = "SELECT Id, Nombre, Dirección, NIF FROM Personas ORDER BY Nombre"

Y mientras recorro este recordset

rs2.Source = "SELECT Supervisor FROM Supervisore WHERE Persona = '" & rs!nombre & "'.

Algo así si me explico. La BBDD de datos no es mía y no la puedo tocar, ya se que relacinándolo funcionaría, pero no puedo modificar nada. Lo tengo que hacer por la aplicación.

Les paso el código que hago servir:

Dim rs2 As Recordset
Set rs2 = New Recordset
connectar
LvEscriptors.ListItems.Clear
While Not rs.EOF
Set ObjItem = LvEscriptors.ListItems.add(, , rs(0))
ObjItem.SubItems(1) = rs!titulo & ""
ObjItem.SubItems(2) = rs!Nombre & ""
ObjItem.SubItems(3) = rs!País & ""
rs2.Source = "SELECT Propietario.Nombre FROM Propietario INNER JOIN Editoriales ON Propietario.IdPropietario = Editoriales.Propietario WHERE (((Editoriales.Nombre)='" & rs!Nombre & "'))"
ObjItem.SubItems(4) = rs2!Nombre & ""
ObjItem.SubItems(5) = rs!País & ""
ObjItem.SubItems(6) = rs!Contacto & ""
ObjItem.SubItems(7) = rs!FechaEnv & ""
ObjItem.SubItems(8) = rs!FechaReb & ""
ObjItem.SubItems(9) = rs!FechaCon & ""
ObjItem.SubItems(10) = rs!FechaCa & ""
ObjItem.SubItems(11) = rs!anticipo & ""
ObjItem.SubItems(12) = rs!Observaciones & ""
rs.MoveNext
Wend
rs.Close

En la línea donde hago rs2!Nombre me da error siempre diciendo:
"La operación no está permitida si el objeto está abierto"

El rs primero si que la hago la connexion i funciona per no se hacer la segunda conexion (con rs2) mientras la otra está abierta y si cierro la conexíon rs, no me carga todo lo que quiero.

Espero haberme explicado bien ya que es bastante complejo, creo.

Muchas gracias por adelantado.