Visual Basic - ERROR CON ADO

Life is soft - evento anual de software empresarial
 
Vista:

ERROR CON ADO

Publicado por Angel (29 intervenciones) el 18/10/2002 18:49:48
Estoy empezando con ado y al actualizar unos resgistros me da el siguiente error:
"Información de columna clave insuficiente o incorrecta, demasiadas filas afectadas por la actualización"
El código que he manejado es el siguiente:

Ej.

Public cn1 As Connection

Public Sub conex()
Set cn1 = New Connection
With cn1
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "c:\gestion\bg.mdb"
End With
End Sub

Private sub calculos
dim vr as recordset
set vr = new recordset
whit vr
.source="SELECT c1,c2,c3,c4,c5,c6,c7,c8 FROM ta WHERE c8=2 ORDER BY c8"
.activeConnection = cn1
.cursortype =adopenstatic
.cursorlocation =aduseclient
.locktype=adlockoptimistic
end whit
vr.open options:=adcmdtext

do until vr eof
IF vr("c6") <> 0.0 then
vr("c1")=vr("c2")*(100-vr("c3")
else
vr("c1")=vr("c2")
end if
vr.update
vr.movenext
loop
vr.close
set vr=nothing
cn1.close
set cn1= nothing
end sub

La verdad es que es la primera cosa que hago en esto y me encuentro un poco despistado,
agradecería cualquier ayuda al respecto.

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 CON ADO

Publicado por bla (230 intervenciones) el 19/10/2002 00:10:11
Por el error que comentas parece que ninguno de los campos que incluyes en la select c1...c8 es el campo primario de la tabla ta de access, entonces cuando llamas al .update se encuenta que hay dos registros con los mismos valores c1....c8 y access se niega a actualizar los dos (como debe hacer). Introduce en la tabla un campo con clave primaria (seguramente access te habrá metido uno autonumérico llamado id) e introdúcelo en la select:
select id, c1....c8 from ta where c8=2
Por cierto: ¿Qué sentido tiene ordenar por el campo c8 cuándo estás imponiendo que todos los registros tengan el mismo valor en c8?
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 CON ADO

Publicado por Angel (29 intervenciones) el 19/10/2002 23:16:01
Gracias por tu contestación:
Lo de intruducir el campo con clave principal ya lo hice y tampoco funcionaba, lo del campo 8 es porque era un ejemplo lo que había expuesto. Por si te interesa, ya que me parece un hecho muy curioso, he encontrado la solución de la siguiente forma:
Primero he probado con un campo, luego he ido añadiendo campos y funciona bién hasta que añades un determinado número de ellos, no recuero si es hasta sexto o el séptimo, y sustituyendo los nombres de los campos por el "*" funciona perfectamente.
Saludos Angel.
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 CON ADO

Publicado por Angel (29 intervenciones) el 19/10/2002 23:17:59
Gracias por tu contestación:
Lo de intruducir el campo con clave principal ya lo hice y tampoco funcionaba, lo del campo 8 es porque era un ejemplo lo que había expuesto. Por si te interesa, ya que me parece un hecho muy curioso, he encontrado la solución de la siguiente forma:
Primero he probado con un campo, luego he ido añadiendo campos y funciona bién hasta que añades un determinado número de ellos, no recuero si es hasta sexto o el séptimo, y sustituyendo los nombres de los campos por el "*" funciona perfectamente.
Saludos Angel.
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