Actualizo y me duplica el registro

Tengo una tabla llamada Datos digamos que tiene tres campos:

Id - Numérico

Empresa - Tipo texto

Tecnico - Tipo texto

A través de un formulario muestro esos campos mediante cuadros combinados y pongo un botón "Actualizar" que me actualiza otra tabla, llamada Empresas, con, entre otros campos, el de Técnico, que es el que yo quiero actualizar.

Creo un evento al hacer click en el botón cuyo código es este:

Private Sub Actualizar_Click()
CurrentDb.Execute "UPDATE Empresas SET Empresas.Tecnico= '" & Tecnico & "' WHERE Empresas.empresa= '" & empresa & "'"
End Sub

Pues bien. La actualización me la hace correctamente en la tabla Empresas en el registro de la empresa que corresponda. Sin embargo, además de esa actualización, me inserta un nuevo registro a nombre de esa misma empresa y rellenando únicamente ese campo Tecnico. ¿Sabéis por qué es? ¿cómo puedo hacer para que solo me actualice y no me duplique el registro?

2 Respuestas

Respuesta
1

No encuentro nada raro el la instrucción SQL. Todo parece indicar que el formulario tiene como origen de datos la tabla Empresas y se está desplazando a un nuevo registro. Sería conveniente que subiera una imagen, para así dar una respuesta más acertada.

Gracias Eduardo. Perdón por el retraso. Precisamente es eso. Supongamos que yo intento actualizar la Empresa número 1 llamada "EMPRESA 1" con el técnico "JOSÉ".  Esa "EMPRESA 1" en el orden de registros de la tabla (campo autonumérico) es el número 5 por ejemplo de un total de 10 registros (10 empresas) que hay.

Pues bien. Tal y como tengo armada la secuencia, efectivamente en la "EMPRESA 1" si yo voy al campo "técnico" me aparece actualizado el mismo con el nombre "JOSÉ". Sin embargo, además de esa actualización para la "EMPRESA 1" (recordemos, orden de registro número 5 de la tabla) me crea un nuevo registro al final de la tabla (en este caso sería el 11 puesto que ya hay 10 empresas registradas) con esos mismos datos que he actualizado. Me estoy volviendo loco porque no veo donde puede estar el error para que, además de actualizar el registro existente, me cree uno nuevo con esa misma empresa y esos datos actualizados.

Respuesta
1

Por lo que dices, parece que el formulario tiene como origen de registros la tabla Datos, por tanto cada vez que escribas algo, lógicamente, te lo guarda en la tabla. Quítale el origen de registros al formulario.

Personalmente pondría en el evento al hacer clic

Docmd.runsql"update empresas set tecnico='" & me.tecnico & "' where empresa='" & me.empresa & "'"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas