Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Partir una consulta en access

Estas en el tema de Partir una consulta en access en el foro de Bases de Datos General en Foros del Web. Buenos días a todos, llevo un día mareado con una posible consulta y no que hacer ya. Miren he hecho una consulta con dos tablas ...
  #1 (permalink)  
Antiguo 01/09/2005, 02:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 392
Antigüedad: 20 años, 7 meses
Puntos: 1
Partir una consulta en access

Buenos días a todos, llevo un día mareado con una posible consulta y no que hacer ya.
Miren he hecho una consulta con dos tablas relacionados por 3 campos: Nombre, Apellido1 y Apellido2. Estos campos están en ambas tablas.
Pues bien en la tabla 2 hay un campo que es Dirección donde por cada dirección hay un registro. Así

TbDireccion: Nombre, Apellido1, Apellido2, Direccion.

y los registros quedan así:

Pepe Ruiz Mateos DireccionCasaParticular
Pepe Ruiz Mateos DireccionCasaPlaya
Pepe Ruiz Mateos DireccionTrabajo
Pepe Ruiz Mateos DireccionPadres

Pues bien como Puedo hacer un informe en Access donde me separen los registros, vamos que yo pueda hacer 4 informes, uno por cada tipo de direccion. Teniendo en cuenta, que Pepe Ruiz Mateos tiene 4 resgistros, pero otros tienen 3 registros o solo 2 registros o 1 solo registros.

Espero Haberme explicado bien.

Saludos
  #2 (permalink)  
Antiguo 01/09/2005, 08:38
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
¿Como que quieres hacer 4 informes?

¿Te refieres fisicamente a 4 informes en la base de datos?
¿O que en cada hoja a parezca una direccion?
¿O a que puedas seleccionar que registro imprimir?
  #3 (permalink)  
Antiguo 01/09/2005, 10:13
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 6 meses
Puntos: 1
cerberus8 para empezar y disculpa si te ofendo, me parece una locura tener dos tablas donde en la Tabla1 y en la Tabla2 tengas los mismos campos y sobretodo los de los nombres. Si lo que te preocupa es generar informes separados según sea la dirección del cliente (llamémosle así), deberás utilizar eefectivamente dos tablas pero también, dos formularios (uno dentro de otro). Espero estés familiarizado con los sub-formularios.

LLo que puedes hacer es:
1) Creas dos tablas. Por ej. Tabla1 y Tabla2.
2) Campos y Tipo de datos de la Tabla1:
IdCliente: Autonumérico
Apellido1 : Texto
Apellido 2 : Texto
Dirección : Numérico
Campos y tipo de datos de la Tabla2:
IdDireccion: Numerico
Dirección de: Texto (Casa, Trabajo, etc)
Dirección:Texto
3) Creas un nuevo formulario llamado por ej. Clientes, basándote en la Tabla1 y en él, tiras todos los campos creados en la Tabla1 incluído el campo "IdCliente" este luego deberás cambiarle la propiedad a oculto pero por el momento, no es indispensable.
4) Lo guardas y si quieres lo cierras.
5) Creas otro formulario llamado Direcciones (por ej.) y en este le tiras encima todos los campos de la Tabla2 recuerda que para esta tabla no creamos ningún campo autonumérico sino numérico.
Bien.
6) Una vez creado ese formulario, lo guardas con el nombre que gustes pero te sugiero le anticipes al nombre la palabra "Sub". Yo lo llamaría Subdirecciones.
7) Vuelves o abres el 1er formulario llamado Clientes, te vas a la barra de herramientas y seleccionas el botón Subformulario/Subinforme sigues al autoasistente y este te preguntará a través de qué campos se vincularán ambos formularios pues bien, la elección será el "IdCliente" del formulario “Clientes” y el campo "IdDireccion" del formulario SubDirecciones. Recuerda que te conviene para el Subformulario crearlo separadamente como cualquier otro formulario (de hecho lo es) es decir, con los botones mínimamente necesarios (desplazamientos de registros, grabación, eliminación, etc.)

Como al llevarlo al formulario asume que será un Subformulario, Access sabrá que es eso lo que va a hacer de modo tal que te generará al nuevo objeto como subformulario del formulario ppal.
Hasta acá tendrías un formulario con un subformulario asociado. Lo contenido en el Formulario Clientes se guarda en la Tabla1 y lo contenido en el subformulario “Subdirecciones” en la Tabla2
Cómo armas los informes?
Del mismo modo que creaste los formularios es decir, tendrás un Informe “Clientes” y otro informe “Direcciones”. Luego dentro de el Informe “Clientes” deberás insertar el informe “Direcciones” que te quedará como un subinforme.
NOTA: Cada informe debe alimentarse de consultas separadas es decir el informe 1 se vinculara a la tabla 1 y mostrará datos en el informe Clientes y el informe 2 se vinculara a la tabla2 y mostrará datos en el informe Direcciones soloq que cuando metas dentro del informe Clientes el subinforme Direcciones los vincularas a través del Id y estos mostrarán una relación congruente de datos. Recuerda que un campo que no se baja a una query jamás aparecerá disponible en el informe motivo por el cual, si ya sabes de antemano que vincularás los informes a través de campos, no te olvides de bajarlos en las querys de cada informe. Una vez mas, fíjate que puedes hacer lo mismo que hiciste con los formularios, los vinculaste a través de un campo co mejor dicho a través de Ids.
Qué logras con esto? Que se respeten la congruencia de datos es decir que si Pepe Ruiz Mateos tiene dos direcciones pues que muestre cómo son las cosas.

Hasta aquí al armar la salida de informes lograría que un encabezado de grupo pueda ser el nombre del cliente y en la sección detalle (sirviéndose del subformulario Subdirección) te muestre las direcciones para ese cliente ya sea la de la casa, el trabajo o la que fuere.

AHORA, si lo que deseas es un informe por separado del cliente según sea la dirección.

Lo que tienes que hacer es:
1) Sigues los pasos anteriores con la condición que en las consultas le metes un parámetro al informe que muestras las direcciones poniendo en la grilla de la query bajo criterios Como “[Ingrese Tipo de Direccion]*” y que el tío ponga, casa, trabajo o lo que sea. No recuerdo ahora si por ej. Pones cas el string considera al asterisco y asume cas y todo lo que venga después.
2) Y listo, así logras informes por tipo de domicilio separado.

Por Dios si me equivoco que Dios y la patria me lo demanden.

TIP: Recuerda que la Biblia de Access dice, Relación Muchos a Muchos Crear una tercer tabla. Para nuestro caso en particular, nos vimos en la obligación solo de crear dos dado que vinculamos tanto a los formularios como a los informes a través de campos de lo contrario y si todos esos datos tuvieran que estar en una sola tabla, nos veríamos obligados a crear una tercera llamada por ej. DireccionesClientes.

Particularmente no entiendo el motivo de separar las direcciones según su pcdencia pero debes tener un motivo para hacerlo.

Disculpa la cháchara.
Suerte
__________________
When all else is lost the future still remains.
  #4 (permalink)  
Antiguo 02/09/2005, 02:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 392
Antigüedad: 20 años, 7 meses
Puntos: 1
muchas gracias, voy a probarlo ahora mismo. Y no t preocupes por la cháchara, mejor todo claro. Saludos
  #5 (permalink)  
Antiguo 02/09/2005, 05:45
 
Fecha de Ingreso: octubre-2003
Mensajes: 392
Antigüedad: 20 años, 7 meses
Puntos: 1
cmarti, antes has hablado de la biblia de access, pero tu eres su profeta, eres el amo tio. Muchas gracias por la ayuda de verdad.
Ahora se me ha ocurrido otra cosa, pero voy a tratar de sacarla yo y si no me verás por aki de nuevo, jejejeje.

Saludos
  #6 (permalink)  
Antiguo 05/09/2005, 03:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 392
Antigüedad: 20 años, 7 meses
Puntos: 1
Nada, no puedo con ella. Ahora lo que pretendo es que si por ejemplo un Cliente tiene 4 direcciones y otro 2, yo quiero sacar un informe que diga por ejemplo:

Pepe Ruis Mateos: Dirección Habitual ............................
Dirección Alternativa .......................

Luis lopez gil Dirección Habitual ............................
Dirección Alternativa .......................

siendo la dirección habitual el primer registro y la alternativa el segundo, independientemente del número de registros que tenga, que puede ser de Pepe Ruiz Mateos 4 y de Luis Lopez Gil 2.
No sé si me he explicado, quiero separar por registros si pudiese ser.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:37.