Error 3709 ayuda por favor

Si por favor me pudieras ayudar
Quiero conectar Visual Basic 6 con Accces y no puedo
Mira he creado lo siguiente
Global db As New ADODB. Connection
Global rscliente As New ADODB. Recordset
Public Sub DATA()
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Farmacia\FARMACIA.mdb;Persist Security Info=False"
End Sub
Public Sub Cliente()
Rscliente. Open "select * FROM cliente", db, adOpenStatic, adLockOptimistic
luego desde un formulario hago lo siguiente:
Private Sub cmdgrabar_Click()
Call Cliente
With rscliente
.AddNew
!codcliente = txtcodcliente.Text
!apellidos = txtapellidos.Text
!nombres = txtnombres.Text
!direccion = txtdireccion.Text
!documento = txtdocumento.Text
!fnac = txtfecnac.Text
!telefono = txttelefono.Text
!ruc = txtruc.Text
!carnet = txtcarnet.Text
!observacion = txtobservacion.Text
.Update
End With
End Sub
Presiono f8 y sale bien hasta que llama a la tabla rscliente. Open y manda el siguiente error:
Error 3709
No se puede utilizar la conexión para realizar esta operación. Está cerrada o no es valida en este contexto.
A ver si me ayudas

4 respuestas

Respuesta
1
Cuando abres la Tabla en el recordset estas utilizando "adOpenStatic", esto es solo para consultas, creo que ese es tu error.
Te recoemiendo utilizar adOpenDynamic para casos de actualización como el que estas utilizando.
Respuesta
1
Tiene que ser de esta forma:
Global db As ADODB. Connection
Global rscliente As ADODB. Recordset
Public Sub DATA()
set db = NEW ADODB.Connection
set rscliente = NEW ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Farmacia\FARMACIA.mdb;Persist Security Info=False"
End Sub
Public Sub Cliente()
Rscliente. Open "select * FROM cliente", db, adOpenStatic, adLockOptimistic
Respuesta
1
¿Prueba con estos pequeños cambio debe estar juntos en el public? ¿Por qué los separas?
acostumbreate a usar la variable app.Path y no indicar directamente el directorio de la base de datos
otra cosa donde esta
db.close prueba y me avisas
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\base_datos.mdb"
End Sub
Rscliente. Open "select * FROM cliente", db, adOpenDynamic, adLockOptimistic
Respuesta
1
Te recomiendo que abras la tabla en el momento que la vayas a utilizar. Prueba a cambiar las variables de GLOBAL A PUBLIC.
Son como yo las tengo creadas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas