Consulta con conexión ADO

Estoy haciendo una conexión mediante ADO y cuendo en el formulario veo los registros y quiero modificarlo, eliminarlos hacer una búsqueda etc me sale el siguiente mensaje
" EL recordset actual no admite actualizaciones.Puede puede ser una limitación del proveedor o del tipo del bloqueo seleccionado."
Lo que hago es lo siguiente
Dim Cn as ADODB.connection
dim Rs as ADODB.recordset
Private sub form_load()
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.jet.OLEDB.4.0"
.Open "C:\Prueba ADO\Presupuestos.MDB"
Set rs = New ADODB.Recordset
rs.Open "select * from clientes", cn, adOpenStatic
Set Text1.DataSource = rs
Text1.DataField = "ID_Cliente"
Set Text2.DataSource = rs
Text2.DataField = "Nombre"
Set Text3.DataSource = rs
Text3.DataField = "Apellidos"
Set Text4.DataSource = rs
Text4.DataField = "Direccion"
Set Text5.DataSource = rs
Text5.DataField = "Ciudad"
Set Text6.DataSource = rs
Text6.DataField = "Telefono"
Set Text7.DataSource = rs
Text7.DataField = "Fax"
Set Text8.DataSource = rs
Text8.DataField = "Mail"
Set Text9.DataSource = rs
Text9.DataField = "Comentarios"
End With
End Sub
Si puedes mandarme un ejemplo mejor así lo puedo estudiar.
Respuesta
1
También yo he experimentado este tipo de problemas, y no te podría contestar con exactitud el error, lo que yo he sacado por deducción, es que siempre que traigo una consulta y no una tabla, sucede este error, creo que las consultas son solo eso: consultas (no modificaciones). Veo en tu código que en realidad estas obteniendo toda la tabla mediante una consulta ("SELECT ..."), entonces no es necesario la consulta, cambia las clausulas de SQL, por solamente el nombre de la tabla, y así si podrás hacer cambios sobre ella. Si tienes dudas o no te funciona, escríbeme, para madarte un ejemplo, creo que podemos sacarlo adelante. Bye.

3 respuestas más de otros expertos

Respuesta
1
en http://www.terra.es/personal2/sfortiz/
En bases de datos / conexión hay una funacion que se llama crea recordset ADO que hace lo que quieres.
Te falta este código antes del Open
rs.CursorType = adOpenKeyset
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
Respuesta
1
No tengo a la mano un código de ejemplo (estoy en el trabajo), pero intenta utilizar la conexión en el provider ej. Provider"xxxx;data Source" & nombre_base de datos
Enviame un correo a [email protected] solicitando el formulario, así te reespondere enviando el formulario
Respuesta
1
Sigue estos pasos para detectar el problema.
1.- Checa las propiedades de tu base de datos.
2.- Checa los atributos que tiene el grupo de trabajo.
3.- Checa los atributos que tiene el usuario.
4.- Trata de especificar el tipo del recordset que permita la edición.
--- Dynaset
--- Table
--- SnapShot
5.- No se te olvide usar los comandos.
CONTROL. Recordset. Edit
CONTROL.recordset.Update
'Antes de modificar se pone
CONTROL.recordset.edit
'... aquí pones el código
'...´para modificar los
'... campos del registro
'Para que se actualicen los cambios se pone
CONTROL.recordset.Update

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas