despues de realizar la consulta, cuando quiere llenar el recordset me dice que el objeto esta cerrado.
El tema es que la función que hace esa consulta funcionaba perfecto y yo nunca la modifique, lo que si hice fue agregar otras consultas (que si funcionan) en otras partes del programa.
esto que les pego es parte del código del boton que llama a la función, en éste se crea el recordset " Set mRsCajasaAnular = New ADODB.Recordset" y luego se lo pasa como parámetro a la otra función.
Código:
Private Sub cmdBuscarCajaaAnular_Click() ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' On Error Resume Next ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim sRta As String Dim iRta As Integer Dim sFchVto As String Dim sFchProd As String ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' If Len(txtCajaaAnular.Text) = 0 Then Call gsMensaje("Se debe indicar una caja a buscar", vbExclamation) Exit Sub End If ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Limpio la grilla: Call mDef_List_Anulaciones ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' mRsCajasaAnular.Close Set mRsCajasaAnular = Nothing Err.Clear ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set mRsCajasaAnular = New ADODB.Recordset ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Obtengo los datos de las cajas que coincidan con el número ingresado: iRta = giObtener_Datos_Caja(mRsCajasaAnular, Trim$(txtCajaaAnular.Text), sRta)
Esta es la función que me da error cuando quiere llenar el recordset. en ella se define otro recordset "Dim Rs As ADODB.Recordset", y luego con eso se llena el otro recordset "rRec" que se pasa como parámetro a la función.
Código:
Me estoy volviendo loco, el error que me tira es el N° 3704Public Function giObtener_Datos_Caja(rRec As ADODB.Recordset, sNroCaja As String, sRta As String) As Integer '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' On Error Resume Next ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Obtengo los datos de las cajas que coincidan con el número ingresado. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim sCadena As String ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set Cn = New ADODB.Connection Set Rs = New ADODB.Recordset ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Cn.CursorLocation = adUseClient Cn.Open gsParam.sConnAccessLocal ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' sRta = "OK" sCadena = "SELECT * from Capturas WHERE NroCaja='" & sNroCaja & "' AND CodProd='" & gsDatosProducc.sCodProducto & "' AND NroOperacion='" & gsDatosProducc.sNroOperación & "' AND ESTADO=0" ' busco cajas no anuladas Err.Clear Rs.Open sCadena, Cn, adOpenDynamic, adLockBatchOptimistic rRec.Open Rs rRec.MoveFirst If Err.Number = 3021 Then ' Caja no existe: giObtener_Datos_Caja = 1 ElseIf Err.Number <> 0 Then ' Error de acceso: sRta = Trim$(Err.Number) & ", " & Trim$(Err.Description) giObtener_Datos_Caja = 2 Else ' Sin error: giObtener_Datos_Caja = 0 End If GoTo salir ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' salir: Rs.Close Cn.Close Set Cn = Nothing Err.Clear End Function
Muchas gracias gente! Saludos