Curso de Access XP Avanzado

Campos calculados

En algunas ocasiones es necesario generar campos calculados a partir de los datos introducidos en una tabla o tablas de una base de datos, evitando mantener en las propias tablas información que, aunque no es repetida, es generable mediante este tipo de consulta cuando se necesite. Por ejemplo, si en la tabla de socios se dispone del campo cuota y el iva a aplicar sobre la cuota es del 16%, no es necesario tener en dicha tabla un campo llamado total (ni siquiera el campo iva), porque esos resultados se pueden calcular a partir del campo cuota realizando unas sencillas operaciones.

Estos campos se crearán en la propia consulta y para ello bastará con establecer en la fila Campo de una columna vacía (en la parte inferior de la consulta) el nombre del campo seguido por el signo : (dos puntos) y la expresión válida que indica el cálculo a realizar (Nombre del campo: expresión). El nombre del campo calculado no debe coincidir con el de cualquier otro campo existente en la consulta.

Estas expresiones se pueden teclear directamente en la casilla indicada, lo que requiere un conocimiento exhaustivo de la sintaxis de la expresión que se quiere generar (si se trata de usuarios que conocen por ejemplo Excel puede ser un sistema útil), o bien se pueden crear las expresiones con ayuda del Generador de expresiones de Access, al cual se accede seleccionando la opción Generar, del menú contextual que se despliega al pulsar el botón derecho del ratón sobre la propia casilla del campo calculado en la parrilla inferior (también haciendo clic sobre el botón Generar de la barra de herramientas). En ambos casos se presentará el cuadro de diálogo Generador de expresiones, que muestra la figura siguiente:

ima_acc001.gif (8724 bytes)

El cuadro de diálogo presenta tres zonas bien diferenciadas: En su parte superior, un área rectangular blanca en la cual se muestra la expresión a medida que se va generando (o escribiendo o mezcla de las dos formas), en la parte central se encuentran los botones desde los cuales se accede a los operadores más utilizados (que también pueden ser tecleados por el usuario) y en la parte inferior se presentan los distintos elementos con los cuales poder generar la expresión, agrupados en distintas carpetas o bloques.

La parte inferior del cuadro está dividida en tres áreas. La primera de ellas (a la izquierda) presenta las carpetas que contienen las distintas familias de elementos que se pueden utilizar para generar la expresión, la central muestra el contenido de la carpeta o familia seleccionada y si el elemento seleccionado en esta parte central contiene más opciones éstas se presentan en la tercera parte de la derecha.

Las distintas carpetas que se pueden visualizar en este cuadro son las que se muestran en la figura anterior. La carpeta seleccionada se muestra abierta y la carpeta que muestra un signo + indica que contiene más carpetas (como en el Explorador de Windows). Para acceder a una carpeta con signo + habrá que hacer doble clic sobre ella mostrándose las carpetas que contiene, pudiendo acceder a éstas haciendo clic sobre ellas, su contenido se mostrará en el cuadro central.

La primera carpeta contiene los campos de la consulta actual. La carpeta Tablas contiene tantas carpetas como tablas se hayan creado en la base de datos actual y cada una de estas carpetas contendrá los campos de la tabla en cuestión. Igual ocurre con las carpetas Consultas, Formularios e Informes. La carpeta funciones contiene, agrupadas en carpetas y categorías, todas las funciones de que dispone Access (funciones incorporadas). La carpeta Constantes presenta una serie de constantes que se pueden utilizar, la carpeta Operadores los distintos operadores y la carpeta Expresiones comunes una serie de expresiones muy utilizadas.

A la hora de generar una expresión, se pueden ir introduciendo los elementos necesarios para ella accediendo a las carpetas que los contienen y haciendo doble clic sobre el elemento en cuestión, o haciendo clic en el mismo y posteriormente sobre el botón Pegar.

Al seleccionar un elemento este aparece sobre el área blanca superior. Si el elemento seleccionado precisa de algún dato o parámetro adicional, éste se indicará entre los signos <<>>, siendo necesario cambiar cada uno de ellos por el dato correcto. Para ello hay que situar el puntero del ratón sobre el literal que se encuentra entre los signos <<>> y hacer clic sobre él, aparecerá seleccionado y al teclear el dato que se quiere introducir éste lo sustituirá.

Por ejemplo, para crear un campo nuevo llamado Total que calcule la cuota más el 16% de "IVA" actuaremos como sigue tras entrar a crear una consulta nueva a partir de la tabla socios y bajar los campos que se deseen:

  1. Escribir en una celda en blanco de la fila Campo de la consulta, el nombre del campo seguido de dos puntos Total:
  2. Llamar al generador de expresiones mediante el menú de contexto (botón de la derecha del ratón).
  3. Crear la expresión, tal y como muestra la siguiente figura:
    • Hacer doble clic sobre la carpeta Tablas.
    • Hacer clic sobre la carpeta Socios que cuelga de la carpeta Tablas.
    • En la columna central seleccionar el campo Cuota. (comentar el detalle, en este caso, de que Access antepone al nombre del campo entre corchetes rectos, el propio nombre de la tabla a la que pertenece utilizando como separador el signo de admiración derecho: Es el campo cuota de la tabla socios. [Socios]![Cuota].
    • Introducir el operador *, haciendo clic en su botón (porque queremos multiplicar).
    • Teclear 1,16.

acimg017.gif (8774 bytes)

  1. Pulsar el botón Aceptar, el aspecto del campo es:

acimg018.gif (1540 bytes)

Otra expresión "mas casera" para realizar la misma operación sería:

 Total:[Socios]![Cuota]+[Socios]![Cuota]*16/100

 

Muy Importante: Siempre que en Access un campo es aludido en una expresión o fórmula, el nombre del campo aparecerá entre corchetes rectos []. Si el campo lo "coloca" en la expresión el generador de expresiones, el propio generador lo hace. Si es el usuario el que lo teclea lo hará entre corchetes, SIEMPRE. Por ejemplo [cuota], por ejemplo [precio], por ejemplo [fecha_alta]...
  1. Ejecutar la consulta y ver que funciona. Para obtener el formato moneda en el campo calculado picar sobre el mismo, pulsar el botón derecho y tomar la opción Propiedades, en el cuadro de diálogo Propiedades del campo, en formato elegir moneda.

acimg019.gif (8239 bytes)


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Access XP Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Uso de expresiones

El empleo de expresiones es muy habitual, tanto para crear campos calculados como para establecer criterios o relaciones entre campos, siendo el empleo de estas expresiones en todos los casos similar.

Para generar expresiones hay que tener en cuenta los siguientes puntos:

  • El formato de textos, números y fechas empleados en las expresiones es similar al comentado en el caso de los criterios.
  • Para hacer referencia al contenido de un campo, habrá que introducir entre corchetes ([ ]) el nombre del mismo.
  • Los operadores con los que realizar cálculos matemáticos sencillos son (y en este orden de prioridad o jerarquía):
Operador Función
^ Exponente
* / Multiplicación y División
+ - Suma y Resta
  • La lista muestra los operadores en orden decreciente de prioridad, lo cual indica que en una expresión donde aparezcan más de un operador, se aplican primero los que tienen mayor prioridad. Para evitar errores, es recomendable emplear los paréntesis para establecer el orden de ejecución.

    • Los operadores Suma + y Resta - se pueden utilizar para realizar cálculos con fechas, diferencia de días entre dos fechas, fecha resultante de sumar a otra un número de días, etc.
    • El operador \ calcula la parte entera de una división. Y el operador MOD el resto de una operación.
    • El operador & permite concatenar dos o más datos de tipo texto en una expresión en cadena. Los textos introducidos irán entre comillas y si es preciso dejar espacios en blanco entre los textos concatenados estos se indican mediante espacios en blanco situados entre comillas. Por ejemplo: "Don "&[NOMBRE]&" "&[ APELLIDO] mostraría el nombre y el apellido de una persona, dejando un espacio de separación entre ambos datos y con el texto Don delante.
    • Los valores y contenidos de campos que formen parte de una expresión, deben ser del mismo tipo, de lo contrario se produce un error. Por ejemplo, no se puede multiplicar por un número el valor de un campo de tipo texto y si se podrá concatenar el valor de dicho campo con cualquier texto.

    Inscríbete ahora y accede a 3 unidades gratis

    Evalua el curso de Access XP Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


    Funciones

    Las funciones son expresiones predefinidas, más o menos complejas, que realizan una operación concreta y que vienen con Access. Las funciones, al igual que en Excel, deberán utilizarse cumpliendo unas reglas de uso llamadas sintaxis. El uso de las funciones obliga a precederlas del signo igual (=).

    La sintaxis de una función está compuesta por el nombre de la misma y una serie de argumentos con los cuales opera, estos últimos van entre paréntesis y separados unos de otros mediante puntos y coma.
    ejemplo =Nombre de la función(argumento 1; ...;argumento n).

    Los argumentos deben ser compatibles con la función, en una función matemática los argumentos tienen que ser valores numéricos, en una función de fecha deben ser fechas, etc. Estos argumentos también pueden ser expresiones de cálculo correctamente especificadas.

    El empleo del generador de expresiones es muy útil para introducir funciones. En él se encuentran, agrupadas en familias, un gran número de funciones para aplicar de forma sencilla, sin más que seleccionar la función adecuada y especificar los argumentos necesarios. Algunas de estas familias de funciones son:

    • Conversión: transforma datos de una naturaleza a otra.
    • Fecha/hora: realizan operaciones y cálculos con fechas y horas.
    • Texto: utilizadas para tratar cadenas de caracteres.
    • Matemáticas: utilizadas para realizar cálculos matemáticos.

    Otra opción para usuarios más expertos o introducidos en el mundo de Excel, es escribir la función tecleándola directamente, entrando al generador de expresiones cuando se tenga duda que cual es la sintaxis correcta de una determinada función.

    Por ejemplo, para calcular la antigüedad de los socios en el club habrá que crear un campo llamado Antiguedad asociado a una fórmula que crearemos mediante el generador de expresiones. Se tendrá que calcular la diferencia de días entre la fecha actual y la fecha de alta, dividirla por 365 (días que tiene un año) y calcular el entero del número obtenido. La función Ent calcula el entero de un número y la función Ahora establece la fecha actual. Los pasos a seguir son para el campo Antiguedad:

    1. Acceder al Generador de expresiones.
    2. Hacer doble clic sobre la carpeta Funciones y clic sobre la carpeta Funciones incorporadas que cuelga de ella.
    3. En la columna central seleccionar Matemáticas y en la de la izquierda hacer doble clic sobre Ent.

      ima_acc002.gif (9790 bytes)

    4. Hacer clic sobre «número», en su lugar tiene que aparecer la expresión de la cual extraer el número entero, quedando este resaltado.
    5. Hacer clic sobre el botón ima_acc004.gif (897 bytes) para introducir un paréntesis.
    6. Seleccionar del cuadro central (muestra el contenido de la carpeta Funciones incorporadas) Fecha/Hora y en el de la derecha hacer doble clic sobre Ahora.
    7. Hacer clic sobre el botón ima_acc005.gif (883 bytes)
    8. Hacer doble clic sobre la carpeta Tablas y clic sobre la carpeta Socios. En la columna central seleccionar F_ALTA.
    9. Hacer clic sobre el botón ima_acc006.gif (899 bytes) y seguidamente sobre el botón ima_acc007.gif (898 bytes).
    10. Hacer clic sobre «Expr» y teclear a continuación 365. La expresión quedará tal y como muestra la siguiente figura.

      ima_acc003.gif (9296 bytes)

    11. Pulsar el botón Aceptar para finalizar.

    El nuevo campo de cálculo deberá haber quedado de la siguiente forma:

    Antiguedad:Ent((Ahora()-[SOCIOS]![F_Alta])/365)

    Muy Importante: Para priorizar operaciones dentro de una fórmula se utilizan los paréntesis, siendo necesario abrir tantos como para cerrar. Es preferible que sobren a que falten. De no utilizar paréntesis, pudiera resolverse mal el cálculo.

     


    Inscríbete ahora y accede a 3 unidades gratis

    Evalua el curso de Access XP Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


    Si desea obtener un acceso sin restricciones a los contenidos del curso de Access XP Avanzado y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.