Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Dos recordset anidados

Estas en el tema de Dos recordset anidados en el foro de Visual Basic clásico en Foros del Web. Buenas a todos. Hace tiempo que no programo en vb6. Pero ahora me surge la necesidad de modificar un código que no era originalmente mío. ...
  #1 (permalink)  
Antiguo 17/01/2014, 03:31
Avatar de magdadumo  
Fecha de Ingreso: enero-2014
Mensajes: 1
Antigüedad: 10 años, 11 meses
Puntos: 0
Dos recordset anidados

Buenas a todos.
Hace tiempo que no programo en vb6. Pero ahora me surge la necesidad de modificar un código que no era originalmente mío.
El problema lo tengo en un bucle, en el que abro un recordset para ir haciendo cambios en él. En medio del bucle, tengo la necesidad de abrir otro recordset (se llama de otra manera), consulto y lo cierro.
El error da, al final del bucle, cuando intenta cerrar el primer recordset. ¿Alguna ayuda?
Os pongo el código resumido, ya que es muuuy largo:

Sub Cargar

(Se abre la conexión)
Set olrsAux = New ADODB.Recordset
For j = 0 To ctflgFacturas.Rows - 1
olrsAux.Open "SELECT * FROM F_FACTU WHERE FfactuIDF=" & vllngIDF, fgcnnBase, adOpenKeyset, adLockOptimistic, adCmdText
If Not olrsAux.EOF Then
olrsAux!FfactuCFE = Date
olrsAux!FfactuCTC = 24
.
.
.
num= FDameNumstr(campo) 'esta es la llamada a la funcion donde abro el 2º recordset
olrsAux.Close 'aquí da el error

next
olrsAux.Close
Set olrsAux = Nothing
(se cierra la conexión)
End Sub


Function FDameNumstr(ref as string) as string
Dim vlstraux As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
vlstrsaux = "SELECT XtbcomBIC FROM X_BANCO WHERE XtbcomIDE = '" & Mid$(Ref, 5, 4) & "'"
rs.Open vlstraux, fgcnnBase, adOpenForwardOnly, adLockReadOnly, adCmdText
If rs.EOF Or IsNull(rs!XtbcomBIC) Then
FDameNumstr= "NOTPROVIDED"
Else
FDameNumstr= rs!XtbcomBIC
End If
rs.Close
Set rs = Nothing

end function


Muchas gracias.
Un saludo.

Etiquetas: anidados, recordset
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.