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

Solucionar error bastante raro en VB6

Estas en el tema de Solucionar error bastante raro en VB6 en el foro de Visual Basic clásico en Foros del Web. Estoy haciendo una aplicación en Visual Basic 6.0, conectada a una BD de Access, en la que hasta hace unos días no me tiraba un ...
  #1 (permalink)  
Antiguo 02/12/2010, 04:30
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 8 años
Puntos: 2
Pregunta Solucionar error bastante raro en VB6

Estoy haciendo una aplicación en Visual Basic 6.0, conectada a una BD de Access, en la que hasta hace unos días no me tiraba un error bastante raro y que no describe nada (lo que me dificulta darme cuenta qué es lo que hice mal).
El tema es así... cuando abro por primera vez el recordset para cargar los datos en un datagrid, lo hace normalmente. Luego lo cierro y cuando quiero agregar un nuevo paciente o médico, me aparece este error:

Error '-2147217915 (80040e05)' en tiempo de ejecución:
Se abrió un objeto.

Sinceramente ya no sé qué más hacer para que no lo tire... uso un DataEnviroment y así es como lo cierro (este código está en un módulo):

Código:
Public Sub CerrarRS(RS As Recordset)
    If RS.State = adStateOpen Then
        RS.Close
    End If
End Sub
Y este código está en el form, para agregar un paciente (en los médicos me hace lo mismo):

Código:
Call CerrarRS(DE.rsPacientes)
With DE.rsPacientes
    .Open "Select * from Pacientes"
...
El error me lo tira cuando hago click en el botón para guardar el paciente, en la línea del .Open

Espero que alguien pueda ayudarme porque en internet no encontré nada al respecto, y la verdad que ya me tiene mal no poder solucionarlo. Desde ya muchas gracias por su tiempo!
  #2 (permalink)  
Antiguo 02/12/2010, 06:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 13 años, 1 mes
Puntos: 13
Respuesta: Solucionar error bastante raro en VB6

Hola

Has probado a poner

Código:
Set RS = Nothing
después del rs.close

--Saludos--
  #3 (permalink)  
Antiguo 02/12/2010, 06:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 8 años
Puntos: 2
Respuesta: Solucionar error bastante raro en VB6

Sí, me olvidé de decir que eso lo intenté, me quedó así:

Código:
Public Sub CerrarRS(RS As Recordset)
    If RS.State = 1 Then
        RS.Close
        Set RS = Nothing
    End If
End Sub
Pero sigue tirándome el error. Lo que más bronca me da es que antes me funcionaba de 10... otra cosa que me dijeron que intente era abrirlo de esta manera

Código:
DE.Connection1.Execute "Select * from Pacientes"
Pero en un lugar me funciona y en otro no. La verdad que me tiene desconcertada ese error, porque el Recordset se cierra bien, y cuando lo quiero abrir me dice eso! También probé sacando el Open pero después me dice que el objeto está cerrado, así que el cierre lo hace bien!
  #4 (permalink)  
Antiguo 02/12/2010, 09:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 13 años, 1 mes
Puntos: 13
Respuesta: Solucionar error bastante raro en VB6

Hola

Has probado a quitar la función?, solo para ver si puede ser de eso. En el lugar de llamar a la función, pon directamente el código de cerrar el recordset, es decir, sin utilizar la función (no se me ocurre nada mas)

--Saludos--
  #5 (permalink)  
Antiguo 02/12/2010, 11:07
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 8 años
Puntos: 2
Respuesta: Solucionar error bastante raro en VB6

Sí, también me fijé si podía ser eso, pero no es :( Muchísimas gracias Insomnia por tratar de ayudarme!
Espero que alguien más pueda darme alguna idea de cómo solucionar esto :)
Saludos!
  #6 (permalink)  
Antiguo 06/12/2010, 08:44
Avatar de DexterGlue  
Fecha de Ingreso: septiembre-2010
Ubicación: Managua
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Solucionar error bastante raro en VB6

PRueba antes de abrir o ejecutar una consulta verificar lo siguiente:
1- si el objeto existe o sea que sea diferente de nothing
2- si el objeto esta abierto al momento de realizar la consulta.

Espero te sirva
saludos
  #7 (permalink)  
Antiguo 07/12/2010, 09:27
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Solucionar error bastante raro en VB6

Cita:
Iniciado por Angiz Ver Mensaje

Código:
Public Sub CerrarRS(RS As Recordset)
    If RS.State = adStateOpen Then
        RS.Close
    End If
End Sub
Código:
Call CerrarRS(DE.rsPacientes)
With DE.rsPacientes
    .Open "Select * from Pacientes"
...
A mi parecer estas usando un recorset distinto al que cerrras..
  #8 (permalink)  
Antiguo 07/12/2010, 15:08
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 9 años, 2 meses
Puntos: 47
Respuesta: Solucionar error bastante raro en VB6

Hola!!
por que no tratas algo asi:
Código vb:
Ver original
  1. Call CerrarRS(DE.rsPacientes)
  2.  
  3. Set de=new dataenvironment ' A VER SI FUNCIONA
  4.  
  5. With DE.rsPacientes
  6.     .Open "Select * from Pacientes"
  7. ...
  #9 (permalink)  
Antiguo 19/12/2010, 13:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 8 años
Puntos: 2
Respuesta: Solucionar error bastante raro en VB6

DexterGlue, ya lo había intentado eso, el objeto siempre estaba cerrado!
Fesero, es el mismo recordset! Le paso al módulo DE.rsPacientes y en el módulo lo llamo RS solamente, pero es el mismo recordset y lo cierra bien.
Lokoman, eso también lo traté de hacer, pero seguía con lo mismo.
Muchas gracias a todos por la ayuda igualmente!

Al final tuve que cambiar en casi todos los lugares donde abría los recordset con .Open por DE.Connection1.Execute "Select * from Tabla".

Igualmente sigo sin entender por qué tiraba ese error
  #10 (permalink)  
Antiguo 16/10/2012, 10:16
 
Fecha de Ingreso: octubre-2012
Ubicación: Argentina
Mensajes: 1
Antigüedad: 6 años, 2 meses
Puntos: 0
Respuesta: Solucionar error bastante raro en VB6

Yo tenia el mismo error y pude solucionarlo.
En mi caso tenia enlazado el RecordSet con un SHARPGRID2. (una grilla especial)
La primera vez enlazaba y corría bien pero en las sucesivas tiraba el error.
La solución fue poner:
<<SET SHARPGRID2_Nombre.DataSource = Nothing>>
Antes de abrir de nuevo el RS.
Es decir desenlazar la grilla del RS antes de abrirlo.
Espero les sirva.
Suerte

Etiquetas: raro, vb
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 09:11.