Editar registros en formulario de Access, tabla relacionada

Tengo que pedirles un favor, estoy armando una base con Access, pero lo cierto es que no soy muy bueno con la informática.

Actualmente tengo dos tablas: 1) Clientes(IDcliente, Nombre, Apellido, Edad, Direccion, la key) y

2) Datos(IDcliente, pedidos, envios, compras, la key).

Ambas relacionadas por IDcliente.

El problema es el siguiente. Creo una consulta basado en ambas tablas, y genero un formulario que solo me muestre a modo de ejemplo : IDcliente, Nombre y apellido.

Hecho eso, genero un evento luego de ingresar IDcliente, para que me muestre los datos de nombre y apellido.

Hasta ahora todo funciona bien, pero si quiero por ejemplo modificar el apellido, esto me genera un nuevo registro y acabo con dos registros del mismo cliente. (IDcliente no es la key por cuestiones de como pienso va a ser la base a futuro).

¿Me podrían ayudar a solucionar esto?, ya eh leído por todos lados y no le encuentro la solución,

Necesito poder Buscar si el cliente existe, si existe que me muestre los datos y si yo modifico algo, que me lo modifique en la tabla, no que me cree un nuevo registro duplicado con el cambio.

2 Respuestas

Respuesta
1

Primero, no entiendo que teniendo las dos tablas hagas una consulta como origen de registros del formulario. Verás, hay datos que no cambian nunca o casi nunca, como pueden ser el nombre del cliente, apellido, edad, NIF, dirección etc. Lo normal sería que la tabla UNA, fuera la de Clientes, y la que varía, como puede ser Pedidos, compras, etc., sea la de VARIAS. Por tanto yo haría un formulario basado en la tabla Clientes y un subformulario basado en Datos, con lo cual tendrías UN registro para cada Cliente, que a su vez tendría varios registros para las compras, pedidos, etc.

Por ejemplo, tu nombre, apellidos, fechanac, DNI no cambian, por tanto debe ser una tabla "fija", o sea, un registro para ti, pero puedes tener varios coches, por tanto varios registros para coches, con lo cual la relación sería UNO a VARIOS.

Una vez dicho esto, ten en cuenta que en el formulario al tener origen de datos, lo que estás efectivamente haciendo es crear un nuevo registro. Deberías usar algo como Después de actualizar el Idcliente

Apellido=dlookup("apellido","clientes".......

Pero si pudieras extenderte un poco más en como tienes construida la base, te podría decir algo más.

Si quieres, madame un mensaje a [email protected] y te mando un par de ejemplos.

Respuesta
1

Me olvidaba, la relación esta hecha de varios a uno, en la tabla clientes (varios), a la tabla Datos (uno)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas