Editar/crear en un bucle las variables de una consulta de referencias cruzadas de access

Partiendo de una tabla en la que cada registro representa un individuo y sus características, (provincia, sexo, edad...)

Tengo una consulta de referencias cruzadas que me cuenta el nº de federados según provincia (en filas) y según sexo en columnas.

Tengo en un vector el nombre de distintas variables para las que quiero generar una consulta similar cambiando la variable sexo que está en la cabecera de columna por cada una de esas variables.

He intentado hacer un bucle pero no consigo editar o hacer que me pida como parámetro las distintas variables para las que quiero generar las distintas consultas.

Diréis que puedo "guardar como" la 1ª consulta e ir cambiando la variable por la que hago el "PIVOT" pero si quiero estudiar pongamos 500 variables distintas, sexo, edad, peso, altura, ...¿cómo puedo automatizarlo?

1 respuesta

Respuesta
1

Como no tengo claro cómo le quieres indicar los campos como parámetro, te he preparado este ejemplo en el que creo una matriz con los 3 campos posibles y crea las 3 consultas con un solo clic del ratón: http://www.filebig.net/files/D7NHCkcdrp

Otras posibilidades que se me ocurren es que tengas en una tabla los nombres de los campos (uno por registro), abrir un recodset sobre esa tabla, y recorrerlo todo creando las consultas (de forma similar a la del ejemplo)

Otra posibilidad sería poner un cuadro combinado (para seleccionar uno a uno los campos) y crear la consulta (sin necesidad del bucle), o un cuadro de lista de selección múltiple, y generar un bucle sobre los elementos seleccionados. También lo podrías hacer con botones de opción o casillas de verificación...

Como ves, hay muchas posibilidades, por lo que si no te sirve de orientación el ejemplo, y me explicas un poco más cómo tienes pensado gestionar los nombres de los campos para usar como columnas, con gusto te ayudo a dar con la solución.

Un saludo.


¡Gracias! 

Gracias no!! Mil gracias!! Conforme leía tu respuesta me parecía genial, todas esas opciones se me han ocurrido, pero no sé "abrir un recodset sobre esa tabla, y recorrerlo todo ..." mis conocimientos llegan para saber que a alguien más se le ha tenido que ocurrir algo parecido pero no sé hacerlo. Yo creo que con lo que me has mandado me soluciona el problema pero desde luego me encantaría saber dónde aprender a hacer esas cosas. En los cursos de "programación en access" a los que he conseguido ir por trabajo me enseñan lo que ya sé y poquito más, y como luego pasa 1 año o 2 hasta que necesito programar algo pues se me olvida.

Insisto muchísimas gracias Sveinbjorn El Rojo

Te resubo el ejemplo con un botón nuevo con la opción de la tabla y el bucle con el recordset: http://www.filebig.net/files/Da2hJZTGzJ

Por otro lado (y haciéndome un poco de propaganda...), en esta web tengo publicado un curso de Access: http://nksvaccessolutions.com/academy/ Te registras (es gratis) y te "matriculas" en el "curso de access". En el capítulo 7 explico en líneas generales los conceptos básicos de programación en VBA, con lo que tendrás, al menos, una base sólida para adentrarte en este mundo. También en la web de Neckkito (http://neckkito.xyz/nck/ ) tienes manuales muy buenos y un montón de ejemplos sobre Access y VBA (yo empecé con ellos, y mira...)

¿No puedo volver a ponerte un excelente?

También soy novata en el foro, pero "destripando" el procedimiento bajo los botones voy a aprende muchíiiiiisimo.

Gracias!!

Perdona que vuelva a molestarte (molestaros, ya no sé si esto vuelve a ser una consulta pública o sólo para Sveinbjorn El Rojo).

Una vez automatizadas distintas consultas con una ligera adaptación del código que me propusiste, ahora quiero hacer dos cosas y  no lo consigo.

1º - Unir las filas resultantes de dos tipos de consultas automatizadas. Con un boton genero las consultas con los datos provinciales, con otro botón genero la consulta del total y querría unirlos para exportarlo como una única tabla. (si se pudiera hacer todo en una consulta no generaría las parciales), la cosa es que no me deja hacer el "union" de dos consultas "Transform"  (Ver código del botón comando 12)

2º - De forma análoga he generado botones separados para generar automáticamente unas consultas provinciales de "cuantos" y otras de "Estimación-peso" y querría unir sus columnas automáticamente para todas las variables de Tcampos (es decir para todas las variables para las que se han generado las consultas parciales). Aquí a mano, sí que me deja unirlas (ver consulta "Comando 14......" pero automatizarlo con un botón (botón comando 14) no me deja, da error.

No sé si me he explicado con claridad. 

Si alguien me puede ayudar.

Gracias.

El archivo está en:

https://drive.google.com/open?id=1d_BnZC2minZYT2DtpQAMRo5DhvvcuuPs 

Comando 12: no puedes hacer una consulta UNION directamente sobre las de refs. Cruzadas (la SQL con TRANSFORM), pero sí lo puedes hacer crear las dos consulta y luego crear la de union.

Comando 14: lo mismo, puedes crear la consulta final por código a partir de las dos previas.

Por la tarde te preparo un ejemplo y te lo adjunto aquí.

http://www.filebig.net/files/K6XtSeWtCC 

Ahí te dejo la BD con los códigos para crear esas consultas.

La del Comando 14 no puedes generalizarla de la misma forma que las anteriores (usando un recordset o una matriz de campos) porque los nombres de los campos resultantes en las consultas de refs cruzadas son distintos. Tendrías que hacer una SQL para cada consulta, o no modificar los nombres de los campos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas