Access - relacion de tablas y obtencion de registros

 
Vista:

relacion de tablas y obtencion de registros

Publicado por rodrigo tapia c. (6 intervenciones) el 30/01/2007 14:35:16
Estoy trabajando en una base de datos de una empresa que vende ciertos equipos. Para esto, hice 4 tablas donde se guardan los registros (clientes, equipos, mantencion y repuestos). Lo que quiero lograr es relacionar las tablas, de manera de poder buscar a un cliente a través de un menu desplegable, al elegirlo obtener toda los registros que esten relacionados a su clave primaria.
Saludos,

Rodrigo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:relacion de tablas y obtencion de registros

Publicado por Juan Amorós (218 intervenciones) el 30/01/2007 18:21:17
Hola Rodrigo:

Supongo que las 4 tablas tendrán un CAMPO COMÚN a todas ellas, y que el campo común sea, por ejemplo "CodigoCliente".
Si es así es bastante sencillo:

1.- Créate una CONSULTA (Consulta1) basada en la Tabla Clientes. Selecciona sólo los campos Apellidos y Nombre (o como los tengas) y el campo "CodigoCliente". Ordénala ASCENDENTE por Apellidos y Nombre (o como los tengas).

2.- Créate un formulario con un campo tipo CUADRO COMBINADO cuyo origen sea la Consulta1. Selecciona todos los campos de la consulta y, al correspondiente a "CódigoCliente", en ANCHO DE COLUMNAS, ponle 0cm. Butiza este cuadro combinado con el nombre CLIENTE.
Créate un campo CUADRO DE TEXTO al que llamarás CODIGOCLIENTE y en ORIGEN DEL CONTROL del mismo escribes:
= CLIENTE.Column(X)

donde X = al número de columna-1 que ocupa el campo "CódigoCliente)(la lista comienza por la 0, por eso hay que restarle un 1)

3.- Guarda el formulario con el nombre, en nuestro ejemplo, Form01

3.- Créate 3 CONSULTAS (Consulta2, Consulta3 y Consulta4) basadas en las Tablas: EQUIPOS, MANTENCION y REPUESTOS. En cada una de ellas selecciona los campos que te intereseN y, además, el campo "CodigoCliente".
En cada una de estas consultas, en el campo "CodigoCliente", en CRITERIOS, escribes:

Forms!Form01!CLIENTE

4.- Vuelve al FORMULARIO (Form01) y créate 3 CUADROS DE LISTA (1 por cada una de las Consultas: Consulta2, Consulta3 y Consulta4), con todos los campos que contenga cada una de ellas. Bautiza a cada uno de los CUADRO DE LISTA creados como Equipos, Mantenimiento y Repuestos respectivamente.

5.- Entra en las propiedades del CUADRO COMBINADO (CLIENTE) de tu formulario y en la línea DESPUÉS DE ACTUALIZAS, escribes:

me!Equipos.Requery
me!Mantenimento.Requery
me!Repuestos.Requery

Con ésto YA tienes relacionado todo el FORMULARIO con las 4 tablas.

Cada vez que selecciones un cliente diferente, los 3 CUADROS DE LISTA (Equipos, Mantenimiento y Respuestos) se ACUALIZARÁN.

Saludos

Juan Amorós

Pd.- Hay otras formas pero más complejas, por lo que observo, para tí. Esta forma te ayudará a "comprender" la interrelación entre tablas y las casi infinitas posibilidades que se te abren.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por Rodrigo tapia (6 intervenciones) el 30/01/2007 19:00:34
Muchas gracias por la respuesta Juan, me fue de gran utilidad.
Saludos,
Rodrigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por Rodrigo Tapia (6 intervenciones) el 30/01/2007 20:26:05
Juan:
Al ejecutar el formulario el programa me aroja un error, diciendo que la macro 'me!' no ha sido definida. Ademas, la clave primaria utilizada en este caso, considera es doble, por lo que en CLIENTE.Column(x) no sé que debo poner.
Si pudieses ayudarme con eso...
Saludos
Rodrigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por Juan Amorós (218 intervenciones) el 30/01/2007 20:58:33
Hola Rodrigo:
Perdona, en el punto 5, en la linea DESPUÉS DE ACTUALIZAR, selecciona PROCEDIMIENTO DE EVENTO y escribes lo que te pongo en ese punto.

No entiendo lo de la clave primaria utlizada en este caso, considera es doble, acláramelo.

Saludos

Juan Amorós
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por rodrigo tapia (6 intervenciones) el 30/01/2007 21:33:08
Juan:
A lo que me refiero con clave primaria doble es que, la clave principal de la tabla clientes, es de campos multiples (rut y sucursal). Por este motivo se ubica en dos columnas distintas.
En cuanto a lo que especificaste del punto 5 ya lo hice, pero los cuadros de lista (equipos, mantencion y repuestos) no se actualizan cuando elijo a un cliente en particular. Me imagino que esto tiene alguna relacion con el hecho de que la clave principal sea multiple.
Espero me haya explayado de mejor forma.
Saludos,
Rodrigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por Juan Amorós (218 intervenciones) el 31/01/2007 08:21:41
Hola Rodrigo:

Si quieres me envías, en ZIP, la BD con unos cuantos registros en las 4 tablas, el formulario y las consultas.

Te escribiré el código y verás los resultados.

Saludos

Juan Amorós
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacion de tablas y obtencion de registros

Publicado por Juan Amorós (218 intervenciones) el 30/01/2007 21:10:26
Hola, de nuevo, Rodrigo:

"Repasando" lo que te envié he detectado otro ERROR mayúsculo:

En el Punto 3, en el punto y aparte, he escrito:

Forms!Form01!CLIENTE

cuando, en realidad, quería decir:

Forms!Form01!CODIGOCLIENTE

Perdona de nuevo y Saludos

Juan Amorós
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar