Agregar y modificar un registro de una tabla y haga los cambios en otra tabla en Access 2003

Te comento que soy novato en este tema pero a mi jefe se le ocurrió pedirme esto.

Tengo 2 bases de datos la cual una tiene la tabla clientes y la otra base la tabla clientes1 estas bases trabajan con diferentes formularios pero los datos deben ser los mismos, pero los nombres de los campos cambian mas no la información.

Para evitarme muchos problemas de mandar llamar la baseNo2 donde se encuentra la tabla clientes1 hice una vinculación de tablas y ya tengo las tablas en una sola base. La baseNo1 se llama (SCN).

La tabla clientes es la tabla maestra en esa se van a modificar o agrear registros.

Lo primero que quiero hacer es que si modifico cualquier campo de la tabla clientes al darle click al botón salir también me haga los cambios en la tabla clientes1.

Y segundo si agrego un registro nuevo en la tabla clientes también me lo agregue en la tabla clientes1.

Seria muy fácil con una consulta de datos anexados si quisiera pasar todos los registros pero se complica por que es solo modificación o pasar un solo registro, y también los nombres de los campos son diferentes en cada tabla ejemplo.

TABLA clientes = nombreempresa, dirección, población, colonia, cp, teléfonos

TABLA clientes1= nombre, calle, localidad,colonia,cp,teléfonos

Entonces no se como hacerlo, he probado con esta instrucción pero simple no me funciona.

INSERT INTO clientes (nombreempresa,dirección,población,colonia,cp,teléfonos,email)
SELECT nombre,calle,localidad,colonia,cp,teléfono,email FROM clientes1 WHERE claveempresa=numcliente

No se si antes de esta instrucción debemos como decirle al programa que

Nombreempresa,(tabclientes)=nombre,(tabclientes1) o algo así se me ocurre pero la verdad no se nada de programación.

1 Respuesta

Respuesta
1

Lo que tenes que hacer, y se te van a solucionar mucho mejor estos problemas es lo siguiente:

1, solo tenes que tener una sola tabla clientes, (en la base de datos 1, por ejemplo), luego en la base de Datos2, tenes que importar la tabla clientes, y dejarla como tabla vinculada.

Y luego en los formularios, no se si tenes muchos, pero debes poner el mismo nombre de campo que en la tabla vinculada. De esta manera cuando en la tabla Clientes en la base de datos1 realices un cambio, automáticamente lo veras en la 2da. Base de datos, y así te evitas hacer consultas de actualización, y otras cosas, y la info esta "online".

Si ya hiciste todo el trabajo de las consultas de actualización, y no quieres cambiar los nombres de campo en los formularios de la segunda base de datos.

Lo que tenes que hacer en el formulario de la tabla clientes de la 1ra. Base de datos, es en el evento "Al Cerrar", le agregas esta instrucción: Docmd. Openquery "Nombre de la consulta de datos anexados o actualización", acviewnormal.

(O la macro que abra la consulta).

Pero insisto en que lo mejor es que utilices una sola tabla, la vincules en la otra BD, y cambies los nombres de los campos, es lo mejor en mi opinión)

Saludos! Y seguí consultando si no logras resolver el tema!

HOLA buen día y FELIZ AÑO, Perdón por tardarme tanto en contestar y agradezco de antemano tu interés por mi pregunta. Te comento que el 99% de mis formularios contienen los mismos campos con los mismos nombres, el que te comento en la pregunta anterior resulta que como ya nos están solicitando la facturación electrónica tuve que pedir una aplicación en visual basic con base de datos en access para que pudiera manipularla desde mi formulario y como esta ya es una aplicación de uso comercial ya tiene sus campos predefinidos por eso es el problema de la actualización de datos o anexar datos o modificar por que traen otros nombres distintos.

TABLA clientes = nombreempresa, dirección, población, colonia, cp, teléfonos
TABLA clientes1= nombre, calle, localidad,colonia,cp,teléfonos

Se me estaba occuriendo crear un subformulario dentro del formulario de clientes para que por medio de un botón agregue el contenido del primer formulario ejemplo

Me.mobreempresa = Me.nombre

aquí el problema es como le declaro que el campo nombre esta en el subformulario clientes1

Espero no haberte enredado o liado con esta explicación sin fundamentos es que soy nuevo en esto y se me esta complicando como no tienes idea

Feliz Año!.

Para hacer una consulta de Anexar datos no necesitas que las tablas tengan los mismos nombres, ya que en la consulta de Anexar vos le decís a la consulta que valores de campo anexas a cada campo de la tabla.

Con respecto a lo que decís de agregar un subformulario, podes usar este código en el evento "Click" del Boton:

Forms!TuSubformulario!NombreEmpresa.Value = Me.NombreEmpresa.Value

("TuSubformulario" seria el subformulario que quieres agregar.)

Inclusive al subformulario lo podes poner como No Visible, así, no se ve lo que pasa cuando apretás el botón.

me deja pasar la info? me podrías ayudar por favor?

Hola buen día, mira siempre si opte por crear el subformulario con la tabla clientes1 en el formulario clientes.

El subformulario se llama clientessubfacturacion, y me salen algunos problemas ya que no hace la instrucción mira en el formulario clientes se llenan primero los datos y con el botón quiero que paso los datos escritos en el formulario clientes al subformularioclientessubfacturacion, entonces hice esto

Forms!clientessubfacturacion!Nombre.Value = Me.nombreempresa.Value

pero me sale se ha producido el error "2450" en tiempo de ejecución, el programa no puede encontrar el formulario '"clientessubfacturacion"' al que hizo referencia en una expresión y me manda a depurar

y si lo hago viceversa que los nombre de los campos sean alrevez

me pone error de compilación y me pone en negrilla el campo nombre, que sera algo estoy haciendo mal??

MUCHAS GRACIAS OR TODA TU AYUDA ME DISTE LA IDEA DE COMO HACERLO, Y VIENDO UN MANUAL COMPLEMENTE LO QUE YO QUERÍA HACER. EXCELENTE PROGRAMADOR DIOS TE BENDIGA Y MUCHO EXITO

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas