VBA - Access: Dividir una tabla según los valores de ciertos campos

He creado una tabla en access donde clasifico los registros la misma por 6 criterios. Me gustaría utilizar esos 6 criterios para dividir la tabla y guardar las partes en la red con la concatenación de los 6 criterios como nombre de la parte de la tabla que divide es decir: Criterio1(1)_Criterio2(1)_Criterio3(1)_Criterio4(1)_Criterio5(1)_Criterio6(1).xls

Criterio1(1)_Criterio2(1)_Criterio3(1)_Criterio4(1)_Criterio5(1)_Criterio6(2).xls

Criterio1(1)_Criterio2(1)_Criterio3(1)_Criterio4(1)_Criterio5(2)_Criterio6(1).xls

Criterio1(1)_Criterio2(1)_Criterio3(1)_Criterio4(1)_Criterio5(2)_Criterio6(2).xls

Criterio1(1)_Criterio2(1)_Criterio3(1)_Criterio4(2)_Criterio5(1)_Criterio6(1).xls

Criterio1(1)_Criterio2(1)_Criterio3(2)_Criterio4(1)_Criterio5(1)_Criterio6(1).xls

Criterio1(1)_Criterio2(1)_Criterio3(2)_Criterio4(1)_Criterio5(1)_Criterio6(2).xls

Criterio1(1)_Criterio2(1)_Criterio3(2)_Criterio4(1)_Criterio5(1)_Criterio6(3).xls

Criterio1(1)_Criterio2(1)_Criterio3(2)_Criterio4(2)_Criterio5(1)_Criterio6(1).xls

Criterio1(1)_Criterio2(2)_Criterio3(2)_Criterio4(1)_Criterio5(1)_Criterio6(1).xls

Criterio1(2)_Criterio2(1)_Criterio3(1)_Criterio4(1)_Criterio5(1)_Criterio6(1).xls

Criterio1(2)_Criterio2(2)_Criterio3(2)_Criterio4(1)_Criterio5(1)_Criterio6(1).xls

Os he puesto unos cuantos ejemplos para que veais lo que quiero decir.

1 Respuesta

Respuesta
1

Te digo lo que yo haría, que no tiene porque servirte pero te puede dar una idea.

1º Crearía una consulta con la tabla y debajo de los campos que sea, en Criterios pondría forms! Clientes! Criterio1, debajo de otro campo forms! Clientes! Critrio2, etc. Supongamos que la consulta se llama Vale.

2º Haría un formulario con la tabla Clientes y pondría 6 cuadro combinados, uno por cada criterio, donde pongas el valor que puede tomar cada criterio, y en sus propiedades-otras-nombre le pones Crtiterio1, Criterio2, etc. y pondría en un botón de comando

Dim a
a = Criterio1 & "" & Criterio2 & "" & ".xlsx"
DoCmd.OutputTo acOutputQuery, "vale", "ExcelWorkbook(*.xlsx)", "" & a & "", False, "", , acExportQualityPrint

En ese caso, sólo he puesto encadenados dos criterios pero puedes poner lo que quieras. Supongamos que en el criterio1 has elegido 2 y en criterio2 has elegido también 2. te lo guardaría como 22.xlsx

En este caso, como no le he dicho nada, por defecto lo guarda en Documentos. Si quieres que te lo guarde en otro sitio donde pone '" &a... tendrías que poner antes C:\users\....

Muchas gracias por la respuesta. He aprendido de ella bastante, pero no es exactamente lo que quería.

Lo que quiero es que el fraccionamiento del fichero sea a la vez en todas las opciones posibles que me da la clasificación que he definido. 

Para que te hagas una idea, clasifica 1 es pais, clasifica 2 es sistema. Mis valores de clasifica 1 son {España; Francia; Portugal} Mis valores de clasifica 2 son {Manual; Automático}

Pues si tengo datos de españa manual y automático, francia manual y portugal manual quisiera que ejecutando la macro se me partiese el fichero en 4 y se me guardasen 4 archivos que se llamasen:

España_Manual.xls

España_Automático.xls

Francia_Manual.xls

Portugal_Automático.xls

No se si será posible conseguir ésto. Muchas gracias por adelantado. 

Un saludo, 

Cristina, 

Pues es más o menos lo que te decía, si en el combinado criterio1 eliges España y en Criterio2 eliges Manual y pulsas el botón, sólo te pasa a excel aquellos registros que tengan España y Manual, Supongamos que tienes una tabla Clientes con Idcliente, NombreCompañia, NombreContacto, Ciuada y Pais. Haces la consulta con todos los campos( o los que quieras) y debajo de Ciudad, en criterio pones forms! Clientes! Criterio1 y debajo de pais pones forms! Clientes! Criterio2

Luego en el formulario pones un combinado y llámalo Criterio1 y en sus propiedades-datos-origen de la fla con el generador de consultas añade la tabla clientes y lleva a la cuadrícula de diseño el campo Ciudad y agrúpalo. Lo mismo para criterio2 pero con el campo País. Luego si eliges Madrid y España, te manda a excel todos aquellos registros que tengan como ciudad Madrid y pais España. Luego eliges Lisboa y Portugal, al pulsar el botón lo mismo, etc.

Si no es eso, lo entendí mal.

He completado la solución como me has descrito en un principio, con los 6 criterios y me funciona y me extrae la información de uno en uno. Yo quisiera que la información se me descargase completa de una sola vez, las n combinaciones de los criterios a la vez.

Otra cosa que puedo hacer es concatenar los 6 campos en un campo y entonces lo que tendría que hacer es crear n archvio excel tantos como valores diferentes del campo concatenado llamar estos n archivos como el campo concatenado y sacar en los archivos excel la información relativo a ese valor de concatenado. No sé si esto es mas fácil de hacer. 

Como te decía no sé como tienes los criterios ni donde los aplicas, por tanto no te puedo decir nada.

Siento no poder ayudarte más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas