Visual Basic - error al guardar en registro existente

Life is soft - evento anual de software empresarial
 
Vista:

error al guardar en registro existente

Publicado por Fede (9 intervenciones) el 02/03/2023 23:07:50
Buenas, les consulto a los que saben
Estoy guardando registros, verifico si existe un registro por el numero de documento. Si existe lo modifico y si no existe lo agrego.
Cuando existe y lo quiero modificar me da error.: "No se puede encontrar la fija para su actualización: algunos valores han cambiado desde la última vez que se leyó". Me lo muestra en "adoLOCAL.MoveLast"


Set adoLOCAL = New Recordset
adoLOCAL.Open "select * from personas where Documento = '" & valorNroDoc & "'", dbLOCAL, adOpenStatic, adLockOptimistic

If adoLOCAL.RecordCount = 0 Then
adoLOCAL.AddNew
Else
adoLOCAL.Update
End If

adoLOCAL.Fields(1) = 1
adoLOCAL.Fields(2) = aaa1
adoLOCAL.Fields(3) = 1fsafssca

adoLOCAL.MoveFirst
adoLOCAL.Close
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

error al guardar en registro existente

Publicado por gilman (359 intervenciones) el 03/03/2023 08:44:35
Si abres un recorset de tipo static, no puedes hacer modificaciones
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
sin imagen de perfil
Val: 57
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

error al guardar en registro existente

Publicado por Darío (42 intervenciones) el 09/03/2023 14:54:34
Hola, no se si entiendo bien lo que te trae error, pero veo que, por un lado tenes un if preguntando si la cantidad de registros es o, si es 0 haces un addnew pero no especificas los valores que querés insertar.

Luego en el update lo mismo, no especificar que campo modificas ni que valores querés ponerle.

Mas abajo haces un .Fields = a algo, cuando llamas a un .fields es para mostrar el dato justamente no para asignarle un dato, al menos es lo que entiendo.
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