Como anexar datos sin sobre-escribir los que ya están

Tengo dos tablas con la misma estructura pero con información diferente. Una (Registros) carga la información de los cambios de factura y la otra tabla (RegistrosinImpuesto), ambos registros los envió a una tabla (RegistroCombinado) por medio de consultas de datos anexados, pero al momento de corrección en las tablas se vuelven a sobre escribir los datos y se borra la información modificada en la tabla (RegistroCombinado).

Como puedo actualizar esta tabla (¿Registro combinado sin que cambie el valor de los datos que ya están registrado?)

1 Respuesta

Respuesta
3

En el encabezado de la pregunta dices anexar mientras que al final dices actualizar. Tienes que concretar pues para anexar se usaría

docmd.runsql"insert into [registro combinado]....

mientras que para actualizar sería

docmd.runsql"update [registro combinado] set......

Si, entiendo.

Realmente quiero saber como al modificar los datos de los formularios que están relacionados con las tablas antes mencionada, estos datos nuevos actualizaran los datos anteriores, pero cuando actualizo las tablas se borran los datos guardados, este desarrollo esta hecho en Access 

Te decía que tendrías que concretar porque se puede hacer de muchas, muchas, formas, y ten en cuenta que me tengo que imaginar lo que quieres. Por ejemplo, supongamos que tengo la tabla que dices Registro y con ella he hecho un formulario

No me gustan las consultas, entre otras cosas, porque para poder hacer algo con ellas tienes que "esperar" a que previamente se rellene una tabla. Es preferible hacerlo a la vez que llenas esa tabla. Si pongo datos

En el momento que escribo el país y pulso Enter, me pasa esos datos a la tabla Registrocombinado, a la que le he cambiado el nombre de los campos para que veas que en la instrucción no tienen porque llamarse igual.

En este caso le he dicho, en el evento Después de actualizar del cuadro de texto Pais( pero podría ser en cualquier otro evento, o en un control tipo botón, etc)

Private Sub Pais_AfterUpdate()
DoCmd.SetWarnings False
DoCmd. RunSQL "insert into registrocombinado(campoa, campob, campoc, campod)values(fechafactura, nombrecliente, ciudad, pais)"
End Sub

Ahora le cambio el nombre del cliente y la ciudad en el formulario Registro

Como no le he dicho nada, me cambia los valores en la tabla Registro, pero en la tabla Registro combinado

Pero si en, por ejemplo, NombreCliente y ciudad( o en todos) les pongo

Private Sub Ciudad_AfterUpdate()
If Not Me.NewRecord Then
DoCmd.RunSQL "update registrocombinado set campoc='" & Me.Ciudad & "'"
End If
End Sub
Private Sub NombreCliente_AfterUpdate()
If Not Me.NewRecord Then
DoCmd.RunSQL "update registrocombinado set campob='" & Me.NombreCliente & "'"
End If
End Sub

Es decir, si no es un registro nuevo, que ya hubiera algo escrito, entonces la tabla Registro combinado también cambiaría

Lógicamente la instrucción llevaría algún criterio para diferenciar un registro de otro.

Y si se hiciera desde el formulario RegistroCombinado sería igual.

Por eso te decía lo de concretar lo que pudieras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas