Error con ADO

Hola bueno estoy trabajando con Ado es una aplicación grande en lo que se podría decir, mi problema es que cuando abro una ventana esta me funciona perfectamente y cada vez que entro sigue funcionando muy bien pero cuando abro otra ventana ya no puedo hacer nada en la primera que abrí (ni nuevo ni guardar) no se porque, pero todas la ventanas que ya he abierto no puedo trabajar otra vez... Tengo un Menu Principal en el que establezco la conexión de la sgt forma :
Set Cn = New ADODB.Connection
    Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Users\jose luis\Desktop\Proyectos\Proyecto Final\STO.mdb"
y en cada ventana tengo el siguiente codigo llamando a la tabla  de cada una:Set Recs =
Set Recs = New ADODB.Recordset
    Recs.ActiveConnection = Cn
    Recs.CursorType = adOpenKeyset
    Recs.LockType = adLockOptimistic
    Recs.CursorLocation = adUseClient
    Recs.Open "Select * From Productos"
    Set Frm_Pr_Con.DGP.DataSource = Recs
    Set CbDia_E.DataSource = Recs
    CbDia_E.DataField = "Dia_E"
    Set CbMes_E.DataSource = Recs
    CbMes_E.DataField = "Mes_E"
    Set CbAño_E.DataSource = Recs
    CbAño_E.DataField = "Año_E"
    Set CbDia_S.DataSource = Recs
    CbDia_S.DataField = "Dia_S"
    Set CbMes_S.DataSource = Recs
    CbMes_S.DataField = "Mes_S"
    Set CbAño_S.DataSource = Recs
    CbAño_S.DataField = "Año_S"
    Set TxtCodigo.DataSource = Recs
    TxtCodigo.DataField = "Codigo"
    Set TxtProducto.DataSource = Recs
    TxtProducto.DataField = "Producto"
    Set TxtCantidad.DataSource = Recs
    TxtCantidad.DataField = "Cantidad"
    Set TxtPrecio_U.DataSource = Recs
    TxtPrecio_U.DataField = "Precio_U"
    Set TxtDescripcion.DataSource = Recs
    TxtDescripcion.DataField = "Descripcion"
el Cn y el Recs estan declarados public en un Modulo....si me pueden ayudar le estare muy agradecido..... Gracias
nota: el problema solo esta cuando abro una ventana y luego otra ya en la primera no se puede trabajar.
Respuesta
1
Supongo que todo lo tienes puesto en el Form_Load. Si no es así revísalo, recuerda que el Form_Load carga todo al levantar la ventana, ¿podrías pegar el código de algún Form_Load? Así podre ayudarte mejor.
Suerte
Bueno Gracias por tratar de ayudarme es lo primero.. en el menu general que es donde tengo todo los menu.. (como un mdi) tengo el :
Set Cn = New ADODB.Connection
    Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Users\jose luis\Desktop\Proyectos\Proyecto Final\STO.mdb"
entonces en cada ventana tengo el siguiente codigo llamando a su tabla corespondiente:
Set Recs = New ADODB.Recordset
    Recs.ActiveConnection = Cn
    Recs.CursorType = adOpenKeyset
    Recs.LockType = adLockOptimistic
    Recs.CursorLocation = adUseClient
    Recs.Open "Select * From Productos"
    Set Frm_Pr_Con.DGP.DataSource = Recs
    Set CbDia_E.DataSource = Recs
    CbDia_E.DataField = "Dia_E"
    Set CbMes_E.DataSource = Recs
    CbMes_E.DataField = "Mes_E"
    Set CbAño_E.DataSource = Recs
    CbAño_E.DataField = "Año_E"
    Set CbDia_S.DataSource = Recs
    CbDia_S.DataField = "Dia_S"
    Set CbMes_S.DataSource = Recs
    CbMes_S.DataField = "Mes_S"
    Set CbAño_S.DataSource = Recs
    CbAño_S.DataField = "Año_S"
    Set TxtCodigo.DataSource = Recs
    TxtCodigo.DataField = "Codigo"
    Set TxtProducto.DataSource = Recs
    TxtProducto.DataField = "Producto"
    Set TxtCantidad.DataSource = Recs
    TxtCantidad.DataField = "Cantidad"
    Set TxtPrecio_U.DataSource = Recs
    TxtPrecio_U.DataField = "Precio_U"
    Set TxtDescripcion.DataSource = Recs
    TxtDescripcion.DataField = "Descripcion"
Pero el problema fue el que le esplique anteriormente... cada formulario llama a su tabla la programación están en el Form_Load de cada uno..
Nota: Creo que el problema esta que debo cerrar cada tabala para poder regresar pero me da error no se que hacer... cualquier sugerencia me ayuda gracias...
esto Set Cn = New ADODB.Connection
        Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Users\jose      luis\Desktop\Proyectos\Proyecto Final\STO.mdb"
deberia estar en cada form, por que si lo pones solo en la pantalla principal, ahi va a funcionar, eso es la conexion que haces a la base de datos, pero no lo estas haciendo de manera global al utilizar mdi, prueba en poner ese mismo trozo de codigo en una pantalla por ejemplo en la pantalla de donde me mandaste ese codigo, cuando levante el form_load deberias de estar conectado a la BD STO.mdb, recuerda que "Set Cn = New ADODB.Connetion" estas setiando a una nueva conexion o sea debes ponerlo en cada formulario para que te conectes a la base de datos, y con los recordset recorres las tablas.
Anteriormente tenia el set Con... en cada una de las ventanas pero me hacia el mismo error y decidí ponerlo en el principal nada más pero como quiera me da el mismo error... alguien me dijo que el error podría estar en que no cierro la tabla al salir de cada ventana y cuando regreso me da ese error no se que podría ser...
Gracias por tu ayuda
Entonces ponle esto
Selecciona form_unload para que funcione.
Ahí le estas diciendo que cuando el formulario se cierre que cierre la conexión pruébalo y me avisas suerte.
form_unload()
cn.close
set cn=nothing

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas