Guía de la sintaxis de expresiones

Cuando se usa Microsoft Access, a menudo es necesario trabajar con valores que no están directamente en los datos. Por ejemplo, quiere calcular el impuesto sobre las ventas en un pedido o el valor total del propio pedido. Puede calcular estos valores mediante expresiones. Para usar expresiones, primero debe escribirlas con la sintaxis adecuada. La sintaxis es el conjunto de reglas mediante las que se combinan correctamente las palabras y los símbolos en una expresión. Al principio, las expresiones de Access son un poco difíciles de leer. Pero con un buen conocimiento de la sintaxis de expresiones y un poco de práctica, resulta mucho más fácil.

En este artículo

Información general sobre las expresiones

Componentes de expresiones

Objetos, colecciones y propiedades

Identificadores

Funciones, operadores, constantes y valores

El número máximo de niveles de anidamiento de expresiones en una base de datos web es 65

Información general sobre las expresiones

Una expresión es la combinación de uno o más de los siguientes elementos: funciones integradas o definidas por el usuario, identificadores, operadores, valores y constantes que dan como resultado un único valor.

Componentes de una expresión

Por ejemplo, la siguiente expresión contiene componentes comunes:

=Sum([Purchase Price])*0.08 
  • Sum() es una función integrada

  • [Purchase Price] es un identificador

  • * es un operador matemático

  • 0.08 es una constante

Esta expresión puede usarse en un cuadro de texto en un pie de página de formulario o de informe para calcular impuesto sobre las ventas de un grupo de elementos.

Las expresiones pueden ser mucho más complejas o sencillas que en el ejemplo anterior. Por ejemplo, esta expresión Boolean consta únicamente de un operador y una constante:

>0

Esta expresión devuelve:

  • True cuando se compara con un número mayor que 0.

  • False cuando se compara con un número menor que 0.

Puede usar esta expresión en la propiedad ReglaDeValidación de un campo de tabla o control para garantizar que solo se especifican valores positivos. Las expresiones se usan en varios lugares para realizar cálculos, manipular caracteres o probar datos. Las tablas, las consultas, los formularios, los informes y las macros tienen propiedades que aceptan una expresión. Por ejemplo, puede usar expresiones en las propiedades OrigenDelControl y ValorPredeterminado de un control. También puede usar expresiones en la propiedad ReglaDeValidación de un campo de tabla.

Principio de página

Componentes de expresiones

Para crear una expresión, se combinan identificadores mediante funciones, operadores, constantes y valores. Cualquier expresión válida debe contener al menos una función o al menos un identificador, y también puede contener constantes u operadores. También puede usar una expresión como parte de otra, normalmente como argumento de una función. Esto se denomina anidamiento de una expresión.

  • Identificadores    El formato general es:

    [Collection name]![Object name].[Property name]

    Solo tiene que especificar suficientes elementos de un identificador para que sea único en el contexto de la expresión. No es raro que un identificador adopte el formato [Object name].

  • Funciones    El formato general es:

    Function(argument, argument)

    Uno de los argumentos suele ser un identificador o una expresión. Algunas funciones no requieren argumentos. Antes de usar una función determinada, revise la sintaxis de la función. Para más información, vea Funciones (organizadas por categoría).

  • Operadores    El formato general es:

    Identifier operator identifier

    Hay excepciones a este formato, tal y como se describe en las tablas que se muestran en la sección Operadores.

  • Constantes    El formato general es:

    Identifier comparison_operator  constant
  • Valores    Los valores pueden aparecer en varias lugares de una expresión.

Principio de página

Objetos, colecciones y propiedades

Todas las tablas, consultas, formularios, informes y campos en una base de datos de Access se conocen individualmente como objetos. Cada objeto tiene un nombre. Algunos objetos ya tienen nombre, como la tabla Contactos en una base de datos creada a partir de la plantilla Contactos de Microsoft Office Access. Cuando se crea un objeto, se le asigna un nombre.

El conjunto de todos los miembros de un tipo de objeto determinado se denomina colección. Por ejemplo, el conjunto de todas las tablas en una base de datos es una colección. Algunos objetos que son miembros de una colección en la base de datos también pueden ser colecciones que contienen otros objetos. Por ejemplo, un objeto de tabla es una colección que contiene objetos de campo.

Los objetos tienen propiedades, que describen y proporcionan una manera de cambiar las características del objeto. Por ejemplo, un objeto de consulta tiene una propiedad Vista predeterminada que describe y permite especificar cómo se mostrará la consulta cuando se ejecute.

En el diagrama siguiente se muestra la relación entre colecciones, objetos y propiedades:

Relaciones entre colecciones, objetos y propiedades

3 Una propiedad

2 Un objeto

1 Una colección

Principio de página

Identificadores

Cuando usa un objeto, colección o propiedad en una expresión, se hace referencia a ese elemento mediante un identificador. Un identificador incluye el nombre del elemento que se está identificando y también el nombre del elemento al que pertenece. Por ejemplo, el identificador de un campo incluye el nombre del campo y el nombre de la tabla a la que pertenece el campo. Un ejemplo de este tipo de identificador se encuentra en:

[Customers]![BirthDate]

En algunos casos, el nombre de un elemento funciona en sí mismo como identificador. Esto se cumple cuando el nombre del elemento es único en el contexto de la expresión que se está creando. El resto del identificador está implícito en el contexto. Por ejemplo, si está diseñando una consulta que solo usa una tabla, los nombres de campo funcionarán como identificadores, dado que los nombres de campo en una tabla deben ser únicos en esa tabla. Como solo se está usando una tabla, el nombre de la tabla está implícito en cualquier identificador que se use en la consulta para hacer referencia a un campo.

En otros casos, debe ser explícito sobre las partes de un identificador para que la referencia funcione. Esto sucede cuando un identificador no es único en el contexto de la expresión. Cuando hay ambigüedad, se deben especificar explícitamente elementos suficientes del identificador para que sea único en el contexto. Por ejemplo, imagine que está diseñando una consulta que usa una tabla denominada Productos y otra denominada Pedidos, y que ambas tablas tienen un campo denominado IdProducto. En este caso, el identificador que se usa en la consulta para hacer referencia a uno de los campos IdProducto debe incluir el nombre de la tabla además del nombre del campo, por ejemplo:

[Products]![ProductID]

Operadores de identificador    Hay tres operadores que se pueden usar en un identificador:

  • El operador de signo de exclamación (!)

  • El operador de punto (.)

  • El operador de corchetes ([ ])

Para usar estos operadores se rodea cada elemento del identificador con corchetes y, después, se unen mediante un operador de signo de exclamación o de punto. Por ejemplo, un identificador de un campo denominado Apellidos en una tabla denominada Empleados se puede expresar como [Employees]![Last Name]. El operador de signo de exclamación indica a Access que lo que sigue es un objeto que pertenece a la colección que precede al operador de signo de exclamación. En este caso, [Apellidos] es un objeto de campo que pertenece a la colección [Empleados], que por sí mismo es un objeto de la tabla.

En realidad, no siempre es necesario escribir un identificador o identificador parcial entre corchetes. Si no hay espacios u otros caracteres especiales en el identificador, Access agrega automáticamente los corchetes cuando lee la expresión. Pero es una práctica recomendada que escriba los corchetes; esto ayuda a evitar errores y también funciona como una pista visual de que una parte determinada de una expresión es un identificador.

Principio de página

Funciones, operadores, constantes y valores

Para crear una expresión, necesita más que identificadores: debe realizar algún tipo de acción. Para realizar acciones en una expresión se usan funciones, operadores y constantes.

Funciones

Una función es un procedimiento que se puede usar en una expresión. Algunas funciones, como Fecha, no necesitan ninguna entrada para que funcionen. Pero la mayoría de funciones requieren una entrada, que se denomina argumentos.

En el ejemplo al principio de este artículo, la función ParcFecha tiene dos argumentos: un argumento de intervalo, con un valor de "yyyy" y un argumento de fecha, con un valor de [Customers]![BirthDate]. La función ParcFecha requiere al menos estos dos argumentos (intervalo y fecha), pero puede aceptar hasta cuatro argumentos.

En la lista siguiente, se muestran algunas funciones que se usan con frecuencia en expresiones. Haga clic en el vínculo de cada función para obtener más información sobre la sintaxis que se usa con esa función.

  • La función Fecha se usa para insertar la fecha actual del sistema en una expresión. Generalmente se usa con la función Formato y también con identificadores de campo para campos que contienen datos de fecha y hora.

    =Date()
  • La función ParcFecha se usa para determinar o extraer parte de una fecha, normalmente una fecha que se obtiene de un identificador de campo, pero a veces, un valor de fecha devuelto por otra función, como Fecha.

    DatePart ( "yyyy", Date())
  • La función DifFecha se usa para determinar la diferencia entre dos fechas, normalmente entre una fecha que se obtiene de un identificador de campo y otra que se obtiene mediante la función Fecha.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • La función Formato se usa para aplicar un formato a un identificador y a los resultados de otra función.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • La función SiInm sirve para evaluar una expresión como verdadera o falsa, y después devolver un valor si la expresión se evalúa como verdadera y otro valor si se evalúa como falsa.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • La función EnCad se usa para buscar la posición de un carácter o cadena dentro de otra cadena. La cadena que se busca normalmente se obtiene de un identificador de campo.

    InStr(1,[IPAddress],".")
  • las funciones Izq, Med y Der se usan para extraer los caracteres de una cadena, comenzando por el carácter del extremo izquierdo (Izq), una posición determinada en el medio (Med) o por el carácter del extremo derecho (Der). Suelen usarse con la función EnCad. La cadena desde la que estas funciones extraen los caracteres suele obtenerse a partir de un identificador de campo.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

Para obtener una lista de funciones, vea Funciones (organizadas por categoría).

Operadores

Un operador es una palabra o símbolo que indica una relación aritmética o lógica específica entre los demás elementos de una expresión. Los operadores pueden ser:

  • Aritmético, como el signo más (+).

  • De comparación, como el signo igual (=).

  • Lógico, como Not.

  • De concatenación, como &.

  • Especial, como Like.

Los operadores se usan generalmente para indicar una relación entre dos identificadores. En las tablas siguientes, se describen los operadores que puede usar en expresiones de Access.

Aritmético    

Los operadores aritméticos se usan para calcular un valor de dos o más números, o cambiar el signo de un número de positivo a negativo.

Operador

Finalidad

Ejemplo

+

Suma dos números.

[Subtotal]+[ImpuestoSobreVentas]

-

Busca la diferencia entre dos números o indica el valor negativo de un número.

[Precio]-[Descuento]

*

Multiplica dos números.

[Cantidad]*[Precio]

/

Divide el primer número entre el segundo.

[Total]/[RecuentoDeElementos]

\

Redondea ambos números a enteros, divide el primer número entre el segundo y, después, trunca el resultado a un entero.

[Registradas]\[Salas]

Mod

Divide el primer número entre el segundo y devuelve únicamente el resto.

[Registradas] Resto [Salas]

^

Eleva un número a la potencia de un exponente.

Número ^ Exponente

De comparación    

Los operadores de comparación se usan para comparar valores y devolver un resultado que sea verdadero, falso o nulo (un valor desconocido).

Operador

Finalidad

<

Determinar si el primer valor es menor que el segundo valor.

<=

Determinar si el primer valor es menor o igual que el segundo valor.

>

Determinar si el primer valor es mayor que el segundo valor.

>=

Determinar si el primer valor es mayor o igual que el segundo valor.

=

Determinar si el primer valor es igual al segundo valor.

<>

Determinar si el primer valor no es igual al segundo valor.

En todos los casos, si el primer valor o el segundo es Null, el resultado es también nulo. Null. Dado que Null representa un valor desconocido, el resultado de cualquier comparación con Null es también desconocido.

Lógico    

Los operadores lógicos se usan para combinar dos valores y devolver un resultado verdadero, falso o nulo. Es posible que también vea que los operadores lógicos se denominan operadores booleanos.

Operador

Uso

Descripción

And

Expr1 Y Expr2

Verdadero cuando Expr1 y Expr2 son verdaderas.

Or

Expr1 O Expr2

Verdadero cuando Expr1 o Expr2 es verdadera.

Eqv

Expr1 Eqv Expr2

Verdadero cuando tanto Expr1 como Expr2 son verdaderas, o cuando Expr1 y Expr2 son falsas.

Not

No Expr

Verdadero cuando la expresión no es verdadera.

Xor

Expr1 OEx Expr2

Verdadero si Expr1 es verdadera o Expr2 s verdadera, pero no ambas.

De concatenación    

Los operadores de concatenación se usan para combinar dos valores de texto en una cadena.

Operador

Uso

Descripción

&

cadena1 & cadena2

Combina dos cadenas para formar una.

+

cadena1 + cadena2

Combina dos cadenas para formar una sola cadena y propaga los valores nulos.

Especial    

Los operadores especiales se usan tal y como se describe en la tabla siguiente.

Operador

Descripción

Para más información

Is Null or Is Not Null

Determina si un valor es nulo o no nulo.

Like "pattern"

Busca valores de cadena mediante los operadores de comodín ? y *.

Operador Like

Between val1 And val2

Determina si un valor numérico o de fecha se encuentra dentro de un rango.

Operador Entre...Y (Between...And)

In(string1,string2...)

Determina si un valor de cadena está dentro de un conjunto de valores de cadena.

Operador En (In)

Constantes

Una constante es un valor conocido que no cambia y que se puede usar en una expresión. Hay cuatro constantes que se usan habitualmente en Access:

  • True Indica algo que es lógicamente verdadero.

  • False Indica algo que es lógicamente falso.

  • Null Indica la falta de un valor conocido.

  • "" (empty string) Indica un valor que se sabe que está vacío.

Las constantes se pueden usar como argumentos de una función y en una expresión como parte de un criterio. Por ejemplo, puede usar la constante de cadena vacía ("") como parte de un criterio para una columna en una consulta para evaluar los valores de campo de esa columna, especificando el siguiente criterio: <>"". En este ejemplo, <> es un operador y "" es una constante. Si se usan de forma conjunta, indican que el identificador al que se aplican se debe comparar con una cadena vacía. La expresión resultante es verdadera si el valor del identificador es distinto de una cadena vacía.

Tenga cuidado al usar la constante Null. En la mayoría de los casos, si se usa Null junto con un operador de comparación producirá un error. Si quiere comparar un valor con Null en una expresión, use el operador Is Null o Is Not Null.

Valores

Puede utilizar los valores literales en las expresiones, como por ejemplo, el número 1.254 o la cadena "Introduzca un número entre 1 y 10". También puede usar valores numéricos, que pueden ser una serie de dígitos, incluyendo un signo y un punto decimal, si es necesario. En ausencia de un signo, Access supone un valor positivo. Para crear un valor negativo, incluya el signo menos (-). También puede usar notación científica. Para ello, incluya "E" o "e" y el signo del exponente (por ejemplo, 1.0E-6).

Cuando use cadenas de texto, colóquelas entre comillas para garantizar que Access las interprete correctamente. En algunas circunstancias, Access suministrará las comillas automáticamente. Por ejemplo, cuando se escribe texto en una expresión para una regla de validación o para criterios de consulta, Access delimita automáticamente las cadenas de texto con comillas.

Por ejemplo, si escribe el texto Paris, Access mostrará "París" en la expresión. Si quiere que una expresión genere una cadena que quede entre comillas, escriba la cadena anidada entre comillas simples (') o dentro de tres conjuntos de comillas dobles ("). Por ejemplo, las expresiones siguientes son equivalentes:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Para utilizar los valores de fecha y hora, escriba los valores entre signos de almohadilla (#). Por ejemplo, #7-3-17#, #7-Mar-17#, and #Mar-7-2017# son todos valores de fecha y hora válidos. Cuando Access encuentra un valor de fecha/hora válido entre caracteres #, trata al valor automáticamente como datos de tipo Fecha/Hora.

Principio de página

El número máximo de niveles de anidamiento de expresiones en una base de datos web es 65

Las expresiones anidadas en niveles superiores al 65º no funcionan en el explorador, por lo que no debe usar expresiones anidadas a esos niveles en una base de datos web de Access. No verá ningún mensaje de error: simplemente, la expresión no funcionará.

El uso de los operadores &, AND y OR puede crear niveles de anidamiento adicionales en el servidor que no se reflejan en el cliente de Access. Por ejemplo, la expresión "a" & "b" & "c" no está anidada en el Generador de expresiones pero, en SharePoint, se convierte en concatenate.Db("a", concatenate.Db("b", "c") ). Esta traducción crea un nivel de anidamiento. Si usa muchos operadores &, AND o OR consecutivos en una sola expresión, puede superar el límite de anidamiento del servidor (65). Si llega a ese punto, la expresión no funcionará en el explorador.

Principio de página

Vea también

Usar el Generador de expresiones

Introducción a las expresiones

Crear una expresión

Ejemplos de expresiones

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×