Hola a todo/as.
Comento mi problema
Necresitaria cargar un recordset dentro de otro.
Como lo podria hacer?
| ||||
Respuesta: Un recordset dentro de otro Bueno tal vez no lo sepas pero un recorset es una tabla temporal creada por el SGBD utilizando una cadena SQL, una sentencia, y es posible anidar las sentencias para crear un recordset mas especifico, dependiendo del tamaño y la cantidad de registros, se pueden anidar tantas sentencias, hasta un limite de 32 en el msSQLserver. Existen muchos SGBD y dependiendo de la estructura de la base de datos hay diferentes formas de anidar una sentencia, asi que deberías ser mas especifico de que quieres hacer y que S.G. de base de datos estas utilizando. otra cosa, aunque el SQL es un estandar, no todos los SGBD pueden soportar todas las caracteristicas de este lenguaje. |
| |||
Respuesta: Un recordset dentro de otro Buenas voy a poner el código que hago servir y me explicare Public Sub actualitzarLlista() On Error GoTo ErrorSub FEnvioEditorial.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!NomEdi & "" 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 Exit Sub ErrorSub: If Err.Number = 94 Then Resume Next End If End Sub Bien yo lo que quiero es hacer un recordset dentro de este que estoy recorriendo en este bucle para hacer una consulta con uno de los valores que me da el resultado de la consulta. Lo que querría hacer seria algo así ObjItem.SubItems(6) = rs!Contacto & "" rs2.source = "SELECT Nombre FROM Tabla WHERE Fecha = " & rs!FechaEnv & " ObjItem.SubItems(7) = rs2!Nombre& "" Pero siempre me da error de que el objeto es cerrado. Espero haberme explicado bien. Muchasd gracias |
| ||||
Respuesta: Un recordset dentro de otro Hola!! Porque terminas las asignaciones con [ & "" ] ? No es necesario.... La linea [ rs2.source = "SELECT Nombre FROM Tabla WHERE Fecha = " & rs!FechaEnv & "] te da error, porque el RS2 no le das SET ni OPEN, ademas de que terminas la instruccion con [ & " ], creo que de esta forma si te funcionaria:
Código vb:
Ver original Última edición por lokoman; 08/04/2011 a las 14:47 |
| |||
Respuesta: Un recordset dentro de otro Lo acabo de esta manera, porque cuando hay algun regitro vació, no se por que ve fallaba. Provaré esta solución que me has dado, a ver que tal i lo comento en el foro. Muchas gracias por tu ayuda!! |
| |||
Respuesta: Un recordset dentro de otro Hola. Probé el código que me pasaste y no funciona me dice 'La operación no está permitida si el objeto está abierto" Te pongo el código tal y como lo he hecho servir: Dim rs2 As ADODB.Recordset Set rs2 = New ADODB.Recordset On Error GoTo ErrorSub FEnvioEditorial.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!NomEdi & "" If IsNull(rs!idSello) = True Then ObjItem.SubItems(4) = "Sin sello" & "" Else If rs2.State = 1 Then rs2.Close rs2.Source = "SELECT Nombre FROM Sellos WHERE IdSello = " & rs!idSello & "" FEnvioEditorial.connectar ObjItem.SubItems(4) = rs2!Nombre & "" End If ObjItem.SubItems(4) = rs!NomSello & "" End If 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 Exit Sub ErrorSub: If Err.Number = 94 Then Resume Next End If |
Etiquetas: |