Gestión de tablas en access

Seguro que esto ya ha salido, pero yo no lo encuentro.

Tengo tres tablas: Clientes, proveedores de clientes y trabajadores de clientes. Me gustaría relacionar esas tablas de manera que en un cliente tenga los datos de sus trabajadores y de sus proveedores y todo eso gestionarlo en un formulario.

1 respuesta

Respuesta
1

Lo que pretendes es fácil si tienes las BD bien estructurada y las tablas correctamente relacionadas, es decir, si tienes un campo en la tabla Clientes que identifique inequívocamante cada registro (ID, CodCliente...) y ese mismo campo en las otras tablas, para que queden relacionadas entre sí.

La idea es esta: crea un formulario para la tabla proveedores de clientes y otro para la tabla trabajadores de clientes. Luego crea otro para la tabla de Clientes, y una vez creado, lo abres en vista diseño. Añades los dos formularios anteriores como subformularios, y el propio Access te dirá de vincularlos por el campo por el que están relacionados.

De esta forma, tendrás un formulario con dos subformularios, y para cada cliente, además de sus datos, tendrás sus proveedores y trabajadores.

Gracias por tu respuesta. La solución que me diste es una buena opción, pero no lo que busco. Intento explicarme. Necesito una base de datos que contenga los datos de mis clientes en una pestaña, sus trabajadores en otra y los proveedores en una tercera. Pero si uso la opción que me diste lo que hace es al cambiar de pestaña la pestaña trabajadores incluye los trabajadores de todos los clientes.¿Como puedo discriminarlo?

Si quieres usar el control de pestañas, lo que tienes que hacer es añadir en la pestaña trabajadores y la de proveedores, los formularios trabajadores y proveedores como subformularios, como te explicaba en la respuesta anterior, pero ahora, en vez de añadirlos directamente al formulario, añades uno en cada pestaña, teniendo en cuanta que en la primera pestaña tendrás los datos de los clientes.

Sería algo así: ejemplo

Parece que lo estoy consiguiendo. Más o menos lo que quiero es esto. Me quedan unas dudas. ¿Puedo rellenar campos automáticamente al introducir el nif del proveedor(tercers) en mi base de datos?

Gracias por todo.

Sí puedes rellenar automáticamente datos.

Si el nif lo metes en un cuadro de texto, tienes que programar el evento "Despues de actualizar" de ese cuadro y usar la función DLookUp para buscar en la tabla el valor asociado a ese nif. Esa función la usarás tantas veces como campos quieras rellenar, una vez por cada uno. Puedes ver un ejemplo de eso aquí.

Si el nif lo seleccionas de un cuadro combinado, tienes más opciones, como explico aquí.

Gracias por tu ayuda, pero soy torpe. No consigo lo que me propongo, que es lo siguiente:

Pestaña uno:

Datos del cliente.

Pestaña 2

Trabajadores del cliente

Hasta aquí lo enlazo bien. Uso el campo ID cliente que es su nif con el campo empresa que está en la tabla trabajadores. Así me aparecen los trabajadores de cada cliente activo

Pestaña 3. No consigo que funcione.

La idea es que cada cliente tiene sus proveedores y cada proveedor sus clientes. Necesito que en esta pestaña me salgan todos los proveedores del cliente activo en la tabla y no consigo enlazarlo. La tabla proveedores tiene los campos Id Proveedor (nif) y los datos. Al mismo tiempo me gustaría poder crear un proveedor nuevo desde el subformulario, y en el caso de que ya lo tenga en su tabla correspondiente me cargue todos sus datos de forma automática. Gracias,

No puedo abrir tu archivo por incompatibilidad con mi versión de access, por lo que no puedo ver lo que estás haciendo. Pero por lo que me comentas, el problema está en que o tienes mal estructurada tu BD y las relaciones entre las tablas, o tienes mal relacionado el subformulario de proveedores con el formulario principal.

Si las tablas están correctamente relacionadas, al añadir el subformulario en la pestaña 3 ya te lo enlaza automáticamente con el campo de la tabla principal (en este caso el de la pestaña 1), que sería, por ejemplo, el campo "ID" de tu tabla Clientes con "Empresa" de tu tabla Proveedores.

Con este esquema de tablas, puedes crear un proveedor nuevo en el propio subformulario, pero si tienes el mismo proveedor para dos clientes, lo tendrás que duplicar.

Ahora bien, si lo que pretendes es " que cada cliente tiene sus proveedores y cada proveedor sus clientes", y además el esquema de tablas que te proponía en el ejemplo ya no te sirve, pues necesitas una tabla "intermedia" (por ejemplo TClientesProveedores) para relacionar clientes y proveedores y poder simular una relación muchos a muchos.

En este caso, el subformulario que irá en la pestaña lo harás sobre la nueva tabla TClientesProveedores, y puedes aplicar lo que explico en el ejemplo de CuadrosCombinados que te pasé el otro día, o puedes hacerlo sobre una consulta en la que cojas los campos de TClientesProveedores y los cmapos de la tabla Proveedores que quieras mostrar en el subformulario.
Te dejo un nuevo ejemplo con las dos opciones.

Ah!, me olvidaba!

En este último caso (tabla intermedia), no puedes crear proveedores directamente en el subformulario, necesitas un formulario para Proveedores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas