Access, Excel y PGC: paréntesis y unión de textos.

Para que podáis entender la entrada de hoy, debéis primero tener claro el contenido de las últimas tres publicaciones. Os pongo los enlaces por si queréis refrescar la memoria antes de continuar con lo que os voy a explicar hoy.




Pues bien, antes de entrar en el meollo de la cuestión que desarrollaremos hoy, os explicaré tres cuestiones de suma importancia.

Haceros a la idea de que son esas cosas que por simples se dan por conocidas, pero que sin ellas nada funciona. Son como los tornillos, todos saben para que son y como se usan; es algo que no hay que explicar. Sin embargo, pensad que sin tornillos, algo tan simple como eso, los poderosos motores actuales saltarían hechos añicos al intentar que arrancasen.

La primera de esas cuestiones son los paréntesis, el de apertura '(' y el de cierre ')'. Si no están en su sitio, las funciones se vuelven locas; nada da un resultado esperado.

Lo fundamental de esto es que en muchas ocasiones no da un error perceptible; la función da un resultado, pero puede ser cualquier cosa menos lo que dicta la lógica.

En las ciencias exactas lo tenemos muy claro, porque no es lo mismo (2 x 3) -1, (que daría como resultado 5), que 2 x (3 - 1), (que daría como resultado 4).

En Access y Excel los paréntesis actúan del mismo modo. Por eso, en la última publicación os diferencié cada paréntesis con diferentes colores, que coincidían con el color de la función a la que pertenecían esos paréntesis; es decir, en esta formulación:

Der ( 1000000000000 + Int ( Val ( Der ( [Cuenta] ; [Longitud] - [PosiciónPunto] ) ) ) ; 12 - ( [PosiciónPunto] - 1 ) )

Cada color de '(' o de ')', se está refiriendo a qué función pertenece la apertura y el cierre de lo que debe contener esa función con el mismo color. Si no seguimos esta regla, tendremos muchos problemas porque ni Access ni Excel admiten que los paréntesis no estén en su sitio.

La segunda cuestión es el uso del punto y coma, ';'. Tanto en Access como en Excel, el ; se usa para separar las necesidades de cada función. Sin este signo ortográfico de puntuación, las funciones de Office notan que les falta algo y lo reclamarán.

Si una función requiere dos datos, hemos de dárselos separados por un punto y coma. Por ejemplo, la función 'Der' requiere dos datos: de dónde hay que extraer los caracteres y cuántos caracteres hay que extraer; por eso se escribe del siguiente modo: Der ( "abcd" ; 2 ). (El resultado será 'cd'). Todo lo que no esté escrito como 'función' 'paréntesis de apertura' 'texto' 'punto y coma' 'número' 'paréntesis de cierre', nos dará un error porque ni Access ni Excel lo entenderán.

La tercera cuestión es la importancia fundamental para los textos del carácter especial '&'.

La importancia del carácter & es a los textos, como la importancia del carácter + a los números, sólo que no opera, lo que hace es unir.

Lo entenderéis fácilmente con el siguiente ejemplo. (Tened en cuenta lo que os he dicho en otras publicaciones, todo lo que está contenido entre comillas, es literal, es decir, no es un número, es información alfanumérica).

Supongamos los siguientes textos: "70" y "70"

Supongamos los siguientes números: 70 y 70.

Si hacemos las siguientes operaciones, los resultados serán:

70 + 70 = 140

"70" & "70" = "7070"

Es decir, el + opera con números y suma; el & no opera con los textos, los une.

Si habéis entendido todo esto, ya podéis solucionar el resultado de la siguiente expresión:

Izq ( [Cuenta] ; [PosiciónPunto] - 1 ) & Der ( 1000000000000 + Int ( Val ( Der ( [Cuenta] ; [Longitud] - [PosiciónPunto] ) ) ) ; 12 - ( [PosiciónPunto] - 1 ) )

En donde el carácter &, tiene una razón de ser tan importante como la del tornillo al que hacía referencia anteriormente. Está uniendo dos textos para hacer uno sólo: la cuenta contable con los ceros necesarios para que sea una cuenta de nuestro plan contable en el Access o el Excel.

Lo entenderéis mejor con un ejemplo.

Supongamos que el operario ha dado de alta un dato en el campo [Cuenta] del formulario, ha tecleado: 477.21

Si empezamos a sustituir las variables o nombres de campos por su contenido, iremos obteniendo los siguientes resultados:

Izq ( "477.21" ; 4 - 1 ) & Der ( 1000000000000 + Int ( Val ( Der ( "477.21" ; 6 - 4 ) ) ) ; 12 - ( 4 - 1 ) )

Porque:

[Cuenta] = "477.21", (lo que ha tecleado el operario)
[PosiciónPunto] = 4, (porque el punto está en la cuarta posición)
[Longitud] = 6, (porque el operario ha tecleado seis dígitos)

Sigamos con el desarrollo del resultado:

Izq ( "477.21" ; 3 ) & Der ( 1000000000000 + Int ( Val ( Der ( "477.21" ; 2 ) ) ) ; 12 - ( 3 ) )

Lo cual nos lleva a:

Izq ( "477.21" ; 3 ) & Der ( 1000000000000 + Int ( Val ( Der ( "477.21" ; 2 ) ) ) ; 9 )

Izq ( "477.21" ; 3 ) & Der ( 1000000000000 + Int ( Val ( "21" ) ) ; 9 )

Izq ( "477.21" ; 3 ) & Der ( 1000000000000 + Int ( 21 ) ; 9 )

Izq ( "477.21" ; 3 ) & Der ( 1000000000000 + 21 ; 9 )

Izq ( "477.21" ; 3 ) & Der ( 1000000000021 ; 9 )

"477" & "000000021"

Y el resultado final es: "477000000021"; ¡lo que estábamos buscando! Tres dígitos por la izquierda, '477', al que el & le une 9 dígitos por la derecha. Una cuenta contable de doce dígitos, hallada a partir de que el operario ha pulsado '477.21' para el campo [Cuenta] del formulario en Access.

¿No os parece maravilloso?

La semana próxima uniremos esta entrada a la función condicional para ver los resultados para las diferentes posibilidades de las condiciones que estipulemos.

Tened paciencia, queda poco para el desenlace final de toda esta serie de publicaciones.

Mientras tanto, reflexionad sobre la siguiente cita:

La lectura proporciona a la mente sólo materiales de conocimiento; es pensar lo que hace que lo que leemos sea nuestro.
 John Locke

Y, cómo no, disfrutad del siguiente vídeo musical:


Comentarios