Access y Excel: ¿y si se pulsa la cuenta contable completa?

Esta semana veremos otra posibilidad en el resultado de lo que se plantea en 'Cuentas contables con punto o coma en Access'.

Hasta ahora hemos comprobado cómo se desarrolla la solución para cuando el operario pulsa como cuenta contable un dato que contiene un punto; también hemos comprobado cómo sería la solución en el caso de que pulse un dato que contiene una coma.

Esta otra posibilidad consiste en que el operario escriba un dato cuyo contenido no tiene ni punto ni coma, y, además, tiene una longitud de doce dígitos; en otras palabras, el operario escribe la cuenta contable completa.

Pues bien, el desarrollo sería el siguiente. Parto de la base de que ya conocéis por publicaciones anteriores cómo se obtienen los resultados de las variables que voy a exponer.

En este caso, como siempre partiremos del contenido de la variable 'Cuenta', que es el valor que ha tecleado el operario. Así pues, supongamos que:

[Cuenta] = "411000001235"; (Esto es lo que ha pulsado el operario).

Con lo que el resultado de los cálculos serían los siguientes:

[EsNúmero] = EsNúm([Cuenta]) = EsNúm("411000001235") = -1

[PosiciónPunto] = EnCad (1;[Cuenta];".";1) = EnCad (1;"411000001235";".";1) = 0

[PosiciónComa] = EnCad (1;[Cuenta];".";1) = EnCad (1;"411000001235";".";1) = 0

[Longitud] = Longitud ([Cuenta]) = Longitud ("411000001235") = 12

Hasta aquí las variables que se calculan sin condiciones, veamos ahora el resultado de las dos variables que ya hemos desarrollado en publicaciones anteriores y que se calculan mediante condiciones.

[CuentaPunto] = SiInm(-1=0;"0";SiInm(0=0;0;SiInm(0>0 Y 0>0;0;Izq("411000001235";0-1) & Der(1000000000000+Int(Val(Der("411000001235";12-0)));12-(0-1))))) = 0

[CuentaComa] = SiInm(-1=0;"0";SiInm(0=0;0;SiInm(0>0 Y 0>0;0;Izq("411000001235";0-1) & Der(1000000000000+Val(Der("411000001235";12-0));12-(0-1))))) = 0

Es decir, hasta ahora, no sabemos qué cuenta es la que ha escrito el operario; para ello, usaremos las siguientes condiciones:

[CuentaLongitud] = SiInm([EsNúmero]=0;"0";SiInm([PosiciónPunto]>0 Y [PosiciónComa]>0;"0";SiInm([Longitud]=12;[Cuenta];0)))

[CuentaLongitud] = SiInm(-1=0;"0";SiInm(0>0 Y 0>0;"0";SiInm(12=12;"411000001235";0)))

Lo veréis más claro si seguís el siguiente diagrama:


Sencillo, ¿a que sí?. Es más simple que averiguar el resultado cuando se pulsa un punto o una coma, porque el operario ya ha hecho el trabajo por nosotros y ha tecleado los doce dígitos de la cuenta, con lo que no tenemos la necesidad de usar las funciones que hemos visto en anteriores publicaciones, (Int, Der, Izq, Val), ni los operadores lógicos, (&).

La semana que viene, veremos otro supuesto, justamente el contrario al supuesto de hoy: no escribe los doce dígitos, ni, además, escribe un punto o una coma. Teclearía algo así como: "602".

¿Cómo averiguamos entonces la cuenta contable de doce dígitos?

Lo veremos la semana que viene, hasta entonces, disfruten de la vida.















Comentarios