Agrupar en access con repetición

Tengo una duda a la hora de realizar una cosa con access y quisiera que me echaras una mano. Verás, te explico un poco el tema. Tengo en access una tabla en la que aparecen varios datos de unas 1000 personas (nombre, apellidos, calle, número, fecha de nacimiento, etc...). He creado una consulta agrupada (creo que se llama así) para obtener un listado de las diferentes direcciones que aparecen en la tabla principal sin que se repitan. Por ejemplo, si en la tabla principal hay varias personas que vivan en "C/ Orense nº10", en la consulta tan solo me aparecerá una vez esa dirección.

Mi duda surge aquí y no se si tiene solución. Ahora quiero que en la consulta agrupada aparezca dos veces cada dirección por cada 4 veces que se repita en la tabla principal. Me explico, si en la tabla principal hay 4 o menos personas con una misma dirección, en la consulta tan solo me aparecerá una vez esa dirección; si hay de 5 a 8 personas que tengan una misma dirección, quiero que en la consulta aparezca esa dirección dos veces; si hay de 9 a 12, que se repita 3 veces... Y así sucesivamente.

Creo que me he explicado bien.

Respuesta

Lo que tu deseas hacer hay que hacerlo mediante programación de access, no se puede hacer mediante las consultas de agrupamiento. Si quieres, y debido a que la programación llevaría un tiempo, puedo elaborarte el presupuesto de realizarlo. Si te interesa, puedes ponerte en contacto conmigo escribiéndome a [email protected]

Quedando a la espera de recibir noticias tuyas.

1 respuesta más de otro experto

Respuesta
1

Es posible mediante código SQL, debes primer obtener la cantidad a tomar con base a la tabla principal, es decir, si cantidad es 4 en la consulta SQL debe indicar algo como:

Dim lnCantidad as integer

Dim strSql as string

Dim rs AS Recordset

Dim db AS database

set db=currentdb

' Primero obtienes la cantidad de la tabla principal con SQL

' Algo como

strSql=" SELECT ID FROM tblprincipal COUNT(id) AS cant"

SET rs=db.openrecordset(StrSql)

lnCantidad=rs.fields("cant")

' Después con otra consulta utilizas la instrucción TOP de sql para indicar cuantas

' Algo como

strSql="SELECT TOP " & lnCantidad & id & " FROM tbltabl;"

rs.close

db.close

set rs=nothing

set db=nothing

Hola, gracias por tu respuesta.

La verdad es que manejo poco Access, así que imagínate SQL, por lo que no voy a entrar en eso (se me va un poco de las manos). Lo que si se me ocurre, que me podría servir también y que creo que podría ser más fácil es lo siguiente: Realizar una consulta en la que aparezcan las entradas de la tabla principal en la que el grupo (Calle-Número-Piso) se repita más de 4 veces. No se si me entiendes.

Claro puede hacer una consulta con Access y en propiedades defines el numero de registros, de todas formas prefiero SQL.

Intentaré hacer lo del SQL, pero no se ni por donde empezar. Con respecto a la última consulta, no logro conseguir que me muestre aquellas direcciones que se repitan más de 4 veces.

Ya he conseguido hacer la consulta en el que me muestre las direcciones que se repiten más de 4 veces. He creado una consulta de duplicados, tomando solo los datos de las direcciones, y he indicado que el número de duplicados sea mayor de 4.

La verdad es que me gustaría hacerlo como le dije en un principio, pero no se nada de SQL así que no creo que me merezca la pena aprenderlo para hacer solo eso. He intentado hacer algo y nada da error siempre.

Ok te felicito, pero si deseas continuar elaborando aplicaciones más seguros y con cierto grado de dificultad necesitas estudiar algo de SQL.

Unn saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas