Visual Basic - Error en tiempo de ejecucion

Life is soft - evento anual de software empresarial
   
Vista:

Error en tiempo de ejecucion

Publicado por Ana (70 intervenciones) el 21/09/2007 17:05:52
Hola a tod@s:
A ver si me podeis guiarme con el problema que tengo.
Estoy haciendo una aplicación en VB 6.0, con conexión SQL, utilizo ADO para conectarme.

Lo que hago es lo siguiente:
Tengo un MsFlexGrid, en el cual tengo que relaccionar varias tablas.

Os pongo el código:
'Cargamos el MsFlexGrid
AbrirADO 'Abrimos la base de datos (ver ModuloGeneral)
rst.Open "Select * From DtoComision", cnn, adOpenDynamic, adLockOptimistic
Do Until rst.EOF
'Rrecuperamos la descripcion del nombre del cliente
'AbrirADO
rst1.Open "Select CodigoCliente, Nombre From Cliente " & _
"Where CodigoCliente=" & rst!CodigoCliente & ";", cnn, adOpenDynamic, adLockOptimistic
vNombre = rst1!Nombre

'Recuperamos la descripcion del nombre de familia
rst2.Open "Select * From Familia Where CodigoFamilia=" & rst!CodigoFamilia & "", cnn, adOpenDynamic, adLockOptimistic
vNombFamilia = rst2!NombreFamilia

'Recuperamos el nombre del vendedor
rst3.Open "Select * From Vendedor Where CodigoVendedor=" & rst!CodigoVendedor & "", cnn, adOpenDynamic, adLockOptimistic
vNombVendedor = rst3!NombreVendedor

'Recuperamos el nombre del comercial
rst4.Open "Select * From Comercial Where CodigoComercial=" & rst!CodigoComercial & "", cnn, adOpenDynamic, adLockOptimistic
vNombComercial = rst4!NombreComercial

MsDtoComision.AddItem (rst!CodigoDtoComision & Chr$(9) & rst1!Nombre) '& Chr$(9) & rst2!NombreFamilia & Chr$(9) & rst!DTO1 & Chr$(9) & rst!DTO2 & Chr$(9) & rst!DTO3 & Chr$(9) & rst3!NombreVendedor & Chr$(9) & rst!ComisionVendedor & Chr$(9) & rst4!NombreComercial & Chr$(9) & rst!ComisionComercial)
rst.MoveNext
Loop
CerrarADO 'Cerramos la base de datos (ver ModuloGeneral)

La primera vez que pasa, no me da error, pero la segunda si, me da el siguiente error:
Error 3705 la operación no esta permitida si el objeto esta abierto.

Muchas gracias de antemano

Saludos
Ana
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:Error en tiempo de ejecucion

Publicado por Unomásnomás (77 intervenciones) el 21/09/2007 17:41:01
Y.. no veo el Modulo General para saber como esta el Sub CerrarADO
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

RE:Error en tiempo de ejecucion

Publicado por otro mas y mas (2 intervenciones) el 21/09/2007 19:43:40
y en que linea da el error en el rst1, rst2.....

antes le pones rstx.close

o

set rstx = Nothing
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

RE:Error en tiempo de ejecucion

Publicado por Ana (70 intervenciones) el 24/09/2007 09:03:12
El error me da cuando pasa la segunda vez, y me da en el rts1.

En el modulo, tengo una función que se llama:

Public Sub CerrarADO()
rst.Close
cnn.Close
End Sub

Espero que con esto, os sirva, para poder ayudarme.

Muchas gracias.

Ana
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

RE:Error en tiempo de ejecucion

Publicado por carlos uriel de jesus sanchez  (1 intervención) el 11/12/2007 05:44:51
mira por lo que vi el problema es este como lo estas haciendo con funiones necesitas una funcion que abra los recordset no se si utilices data report, ya sea con dataenvironment pero en el sub donde realizas la operacion al principio abrela has tus procesos y al ultimo cierralas mira este ejemplo con datareport y dataenvironment para corregir ese error.

DataEnvironment1.amigo.Open
Me.Command1.Enabled = True
DataEnvironment1.FacCLi (Me.lblNumFac.Caption)
DataReport3.Refresh
DataReport3.Show
DataEnvironment1.amigo.Close

donde amigo es el nombre del proyecto y FacCli es el command del dataenvironment espero que te sirva si no mandame un correo y te ayudo

y viva mexico, desde el centro de mexico en guanajuato hay material de programacion.

uriel_de_jesus_sanchez@hot.....
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

RE:Error en tiempo de ejecucion

Publicado por Unomásnomás (77 intervenciones) el 26/09/2007 15:49:26
Pues claro, y porque no lo ví la primera vaez, creo que estaba apurado..
Mira chica, el problema es que hay bucle en el que haces 4 opens y el Sub CerrarADO solo cierra rst. Entonces la respuesta es evidente.. Despues que hagas el Movenext... tienes que hacer los Closes a tus rst1.. rst4.
Eso es todo...
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

RE:Error en tiempo de ejecucion

Publicado por Ana (70 intervenciones) el 27/09/2007 12:23:42
Muchas gracias, yo tampoco lo había visto.

Lo he probado y me ha dado resultado, muchas gracias

Saludos
Ana
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

RE:Error en tiempo de ejecucion

Publicado por marcos sanches (1 intervención) el 25/03/2008 23:30:56
Presento eero en tiempo de ejecucion y no me deja enviar mensajes

Saludes

Marcos S
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

RE:Error en tiempo de ejecucion

Publicado por ricolina (1 intervención) el 28/04/2009 21:37:21
es tu madre la perra pendejapor eso marca ese error , porqu ese le ha metido tanto la verg aque ya nol ecabe mas y tu madre quiere mas pito entonces cudado con la puta
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

Error en tiempo de ejecucion

Publicado por Guillote (1 intervención) el 14/02/2012 22:20:35
hola tuve el mismo problema y lo solucione metiendo un msgbox en cada linea enumerandolo, es tedioso pero no habia forma de darme cuenta porque como es en tiempo de ejecucion salta el error y no tenemos referencia de en que linea precisamente..
este seria un ejemplo

'Cargamos el MsFlexGrid
AbrirADO 'Abrimos la base de datos (ver ModuloGeneral)
rst.Open "Select * From DtoComision", cnn, adOpenDynamic, adLockOptimistic
msgbox"1"
Do Until rst.EOF
msgbox"2"
'Rrecuperamos la descripcion del nombre del cliente
'AbrirADO
rst1.Open "Select CodigoCliente, Nombre From Cliente " & _
"Where CodigoCliente=" & rst!CodigoCliente & ";", cnn, adOpenDynamic, adLockOptimistic
msgbox"3"
vNombre = rst1!Nombre
msgbox"4"

luego ejecuto el programa y voy aceptando los msgbox hasta que de el error y solo tenemos que saber cual es la linea del error.. y tomar las medidas correspondiente..
saludos
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