Access - Lectura secuencial, agrupación y operación en Access 2013

 
Vista:

Lectura secuencial, agrupación y operación en Access 2013

Publicado por Juan Bueno (1 intervención) el 26/04/2018 18:38:41
Buenas,

Tengo un archivo con registros que están vinculados entre sí por varios campos. Normalmente el patrón es que cinco registros continuos configuran un conjunto único, aunque en ocasiones el grupo es de 3 registros, y en otras es de 6 registros.

El primer registro del bloque lo identifico por FECHA + CODIGO + CONCEPTO y quiero que, tras hacer una comprobación mediante calculo de un dato numérico, si hay incoherencia en los datos me modifique el valor de un registro determinado del conjunto.

Lo expreso a ver si me entendéis:

FECHA CONCEPTO IMPORTE CODIGO
20180101 X 14€ 0-800
20180101 Y 10€ 0-800
20180101 Z 0€ 0-800
20180101 M 25€ 0-800
20180101 T 0 € 0-800
**************************************
20180101 X 12 € 0-656
20180101 Y 14 € 0-656
20180101 T 26 € 0-656

Lo que quiero es:
* Detectar el primer registro de una serie (Fecha + codigo + Concepto = X)
* Detectar el último registro de la serie (Fecha + código + concepto="T")
* Realizar una operación de sumar los registros del grupo cuyo CONCEPTO sea X, Y o Z y sumar los registros M y T, y si hay diferencia entre las dos sumas, corregir el primer registro del grupo para que la diferencia cuadre a 0.

Y así con cada grupo de registros

Espero haberme explicado, no se como afrontar esta situación. Os agradezco vuestra ayuda!
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

Lectura secuencial, agrupación y operación en Access 2013

Publicado por Anonimo (3316 intervenciones) el 28/04/2018 12:09:13
Seria interesante tener claro que datos (imprescindibles) indican una serie, teniendo en cuenta que (x, y z ..., el concepto) no tiene unas reglas concretas (puede existir o no existir o estar en un orden aleatorio).

Básicamente (o eso entiendo en base a los datos de muestra) un dato que define a una serie podría ser el código, y si este código se repitiese como parte de otra serie, para definir esa serie (o subconjunto) se utilizaría la combinación fecha + código.

El tratamiento de esos datos se podría lograr con cierta sencillez si se generase un recordset basado en esa tabla y ordenado por los campos que definen a la serie (sean estos el código o el código + fecha o fecha + código, que su orden es importante).

Ya con ese recorset lleno de datos, bastaría recorrerlo de principio a fin y se consideraría un subconjunto cuando cambiasen los datos de los campos que se han utilizado en su ordenación.

Ello requeriría VBA y si no se tiene un dominio (aunque sea básico) del manejo de los recordset, bucles .... la solución puede complicarse bastante.
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