Visual Basic - SOLO ES UN PORBLEM DE RECORSET AYUDA PORFAVOR!!!

Life is soft - evento anual de software empresarial
 
Vista:

SOLO ES UN PORBLEM DE RECORSET AYUDA PORFAVOR!!!

Publicado por Angela (97 intervenciones) el 24/01/2003 19:58:58
HOLA
OJALA ALGUIEN ME PUEDA AYUDAR O DAR UNA ORIENTACION PORFAVOR CON ESTE PROBLEMA:
ME MARCA ESTE ERROR "LA OPERACION SOLICITADA POR LA APLICACION NO ESTA PERMITIDA SI EL OBJETO ESTA CERRADO" Y APARECE EN ESTA LINEA : While (Not res.EOF)
Y ESTE ES MI CODIGO,previamente declare los objetos y la conexion:
OJALA ME PUEDAN ORIENTAR , MUCHAS GRACIAS POR SU ATENCION
Private Sub Command5_Click()
iscita = InputBox("Introduzca la cita", "Añadir cita")
If iscita <> "" Then
Set res = New ADODB.Recordset
Set cnm = New ADODB.Command
Set PARAMETRO = New ADODB.Parameter
Set cnm.ActiveConnection = cn
cnm.CommandText = "spcliente"
cnm.CommandType = adCmdStoredProc
cnm.Parameters.Append cnm.CreateParameter("cita", adVarChar, adParamInput, 10, iscita)
Set res = cnm.Execute()
Set FLDS = res.Fields
res.Open "nombre_bus " & iscita, cn, adOpenForwardOnly, adLockReadOnly
While (Not res.EOF)
For Each fld In FLDS
Debug.Print fld.Value
Next
Debug.Print ""
res.MoveNext
Wend
res.Close
cn.Close
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SOLO ES UN PORBLEM DE RECORSET AYUDA PORFAVOR!!

Publicado por Scherzo (42 intervenciones) el 26/01/2003 06:18:26
Algo me hace pensar que posiblemente lo que te está pasando es que la línea donde haces el Open:

res.Open "nombre_bus " & iscita, cn, adOpenForwardOnly, adLockReadOnly

está fallando y por eso cuando pasa a la siguiente, te dice que no se puede cerrar algo que no está abierto. Te aconsejo que pongas un tratamiento de errores para ver si es por este motivo que te indico, que esté dando error la línea de apertura.

Si no sabes cómo se hace un tratamiento de errores, te explico brevemente. En la parte de arriba pon una línea que sea

On Error Goto Errores

Siendo "Errores" una etiqueta cualquiera

Y luego al final de ese código, pon una línea que sea

Errores:

Has de poner la etiqueta que hayas usado anteriormente, y fíjate bien que hay dos puntos detrás de la palabra.

En la linea debajo de esto podrás poner el código que quieras que se ejecute en caso de error, que en tu caso, como simplemente sería para ver si hay error o no, te recomiendo que pongas un Debug.Print con un mensaje descriptivo. Podrás hacer una ejecución línea a línea para ver si en algún momento salta a la parte de errores.

Justo antes de la línea

Errores:

has de poner un Exit Sub para evitar que el flujo normal de código se meta en el tratamiento de errores sin que le corresponda.

Espero que esto te ayude, suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar