Ejemplos de expresiones

En este artículo se ofrecen ejemplos de expresiones en Access. Una expresión es una combinación de operadores lógicos o matemáticos, constantes, funciones, campos de tabla, controles y propiedades que dan como resultado un único valor. Puede usar expresiones en Access para calcular valores, validar datos y establecer un valor predeterminado.

En este artículo

Formularios e informes

En las tablas de esta sección se proporcionan ejemplos de expresiones que calculan un valor en un control ubicado en un formulario o informe. Para crear control calculado, escriba una expresión en la propiedad Origen del control, en lugar de escribirla en un campo o una consulta la tabla.

Nota    También puede usar expresiones en un formulario o informe al Resaltar datos con formato condicional.

Operaciones de texto

En las expresiones de la tabla siguiente se usan los operadores & (Y comercial) y + (signo más) para combinar cadenas de texto, usar funciones integradas para manipular una cadena de texto, o bien realizar otra operación con texto para crear un control calculado.

Expresión

Resultado

="N/A"

Muestra N/A.

=[FirstName] & " " & [LastName]

Muestra los valores que residen en los campos de tabla llamados Nombre y Apellidos. En este ejemplo, el operador & se usa para combinar el campo Nombre, un carácter de espacio (delimitado con comillas) y el campo Apellidos.

=Left([ProductName], 1)

Usa la función Izq para mostrar el primer carácter del valor de un campo o control denominado NombreDeProducto.

=Right([AssetCode], 2)

Usa la función Dcha para mostrar los dos últimos caracteres del valor de un campo o control denominado CódigoDeActivo.

=Trim([Address])

Usa la función Recortar para mostrar el valor del control Dirección sin espacios iniciales ni finales.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Usa la función SiInm para mostrar los valores de los controles Ciudad y CódigoPostal si el valor del control Región es nulo; en caso contrario, muestra los valores de los controles Ciudad, Región y CódigoPostal, separados por espacios.

=[City] & (" " + [Region]) & " " & [PostalCode]

Usa el operador + y la propagación de valores nulos para mostrar los valores de los controles Ciudad y CódigoPostal si el valor del campo o control Región es nulo; en caso contrario, muestra los valores de los campos o controles Ciudad, Región y CódigoPostal, separados por espacios.

Una propagación de valores nulos quiere decir que, si cualquier componente de una expresión es nulo, toda la expresión también será nula. El operador + admite la propagación de valores nulos, pero el operador & no.

Principio de página

Encabezados y pies de página

Use las propiedades Página y Páginas para mostrar o imprimir números de página en formularios o informes. Las propiedades Página y Páginas solo están disponibles durante la impresión o la vista previa de impresión, por lo que no aparecen en la hoja de propiedades del formulario o informe. Normalmente, estas propiedades se usan al colocar un cuadro de texto en la sección del encabezado o pie de página del formulario o informe y, después, se usa una expresión, como las que se muestran en la tabla siguiente.

Para obtener más información sobre el uso de encabezados y pies de página en formularios e informes, vea el artículo Insertar números de página en un formulario o informe.

Expresión

Resultado

=[Page]

1

="Page " & [Page]

Página 1

="Page " & [Page] & " of " & [Pages]

Página 1 de 3

=[Page] & " of " & [Pages] & " Pages"

1 de 3 páginas

=[Page] & "/" & [Pages] & " Pages"

1/3 páginas

=[Country/region] & " - " & [Page]

Reino Unido - 1

=Format([Page], "000")

001

="Printed on: " & Date()

Impreso el: 31/12/17

Principio de página

Operaciones aritméticas

Puede usar expresiones para sumar, restar, multiplicar y dividir los valores de dos o más campos o controles. También puede usar expresiones para realizar operaciones aritméticas en fechas. Por ejemplo, imagine que tiene un campo de tabla de fecha y hora denominado FechaObligatoria. En el campo, o bien en un control enlazado al campo, la expresión =[RequiredDate] - 2 devuelve un valor de fecha y hora igual a dos días antes de los valores actuales en el campo FechaObligatoria.

Expresión

Resultado

=[Subtotal]+[Freight]

La suma de los valores de los campos o controles Subtotal y Transporte.

=[RequiredDate]-[ShippedDate]

El intervalo entre los valores de fecha de los campos o controles FechaObligatoria y FechaDeEnvío.

=[Price]*1.06

El producto del valor del campo o control Precio y 1,06 (suma un 6 % al valor Precio).

=[Quantity]*[Price]

El producto de los valores de los campos o controles Cantidad y Precio.

=[EmployeeTotal]/[CountryRegionTotal]

El cociente de los valores de los campos o controles TotalDeEmpleados o TotalDePaísORegión.

Nota    Cuando use un operador aritmético (+, -, * y /) en una expresión y el valor de uno de los controles de la expresión es nulo, el resultado de toda la expresión será nulo (esto se conoce como propagación de valores nulos). Si alguno de los registros de uno de los controles usados en la expresión tiene un valor nulo, puede evitar la propagación de valores nulos si convierte el valor nulo en cero con la función Nz; por ejemplo, =Nz([Subtotal])+Nz([Freight]).

Principio de página

Valores en otros controles

A veces, necesita un valor que exista en otro sitio, como en un campo o control de otro formulario o informe. Puede usar una expresión para devolver el valor de otro campo o control.

En la tabla siguiente se muestran ejemplos de expresiones que puede usar en controles calculados en formularios.

Expresión

Resultado

=Forms![Orders]![OrderID]

El valor del control IdDePedido del formulario Pedidos.

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

El valor del control SubtotalDePedido en el subformulario llamado Subformulario de pedidos en el formulario Pedidos.

=Forms![Orders]![Orders Subform]![ProductID].Column(2)

El valor de la tercera columna en IdDeProducto, un cuadro de lista de varias columnas en el subformulario llamado Subformulario de pedidos, en el formulario Pedidos (tenga en cuenta que 0 hace referencia a la primera columna, 1 hace referencia a la segunda columna, etc.).

=Forms![Orders]![Orders Subform]![Price] * 1.06

El producto del valor del control Precio en el subformulario llamado Subformulario de pedidos, en el formulario Pedidos, y 1,06 (suma un 6 % al valor del control Precio).

=Parent![OrderID]

El valor del control IdDePedido en el formulario primario o principal del subformulario actual.

En las expresiones de la tabla siguiente se muestran algunas formas de usar controles calculados en informes. Las expresiones hacen referencia a la propiedad Informe.

Expresión

Resultado

=Report![Invoice]![OrderID]

El valor de un control llamado "IdDePedido" en un informe llamado "Factura".

=Report![Summary]![Summary Subreport]![SalesTotal]

El valor del control TotalDeVentas en el subinforme llamado Subinforme de resumen en el informe resumido.

=Parent![OrderID]

El valor del control IdDePedido en el informe primario o principal del subinforme actual.

Principio de página

Cuenta, suma y promedio de valores

Puede usar un tipo de función llamada función de agregado para calcular valores de uno o más campos o controles. Por ejemplo, puede calcular un total de grupo para el pie de página de grupo en un informe, o bien un subtotal del pedido de artículos de línea en un formulario. También puede contar el número de elementos en uno o más campos, o bien calcular un valor medio.

En las expresiones de la tabla siguiente se muestran varias formas de usar las funciones Prom, Cuenta y Suma.

Expresión

Descripción

=Avg([Freight])

Usa la función Prom para mostrar la media de los valores de un campo de tabla o control denominado "Transporte".

=Count([OrderID])

Usa la función Contar para mostrar el número de registros en el control denominado IdDePedido.

=Sum([Sales])

Usa la función Suma para mostrar la suma de los valores del control denominado Ventas.

=Sum([Quantity]*[Price])

Usa la función Suma para mostrar la suma del producto de los valores de los controles Cantidad y Precio.

=[Sales]/Sum([Sales])*100

Muestra el porcentaje de ventas, que se calcula al dividir el valor del control Ventas por la suma de todos los valores del control Ventas.

Si establece la propiedad Formato del control en Porcentaje, no incluya *100 en la expresión.

Para obtener más información sobre cómo usar las funciones de agregado y calcular el total de los valores de campos y columnas, vea los artículos Sumar datos con una consulta, Contar datos con una consulta, Contar las filas de una hoja de datos y Mostrar totales de columna en una hoja de datos.

Principio de página

Funciones de agregado de SQL

Puede usar un tipo de función denominada función de agregado de dominio o de SQL si necesita sumar o contar valores de forma selectiva. Un "dominio" consiste en uno o más campos de una o más tablas, o bien en uno o más controles de uno o más formularios o informes. Por ejemplo, puede comparar los valores de un campo de tabla con los valores de un control en un formulario.

Expresión

Descripción

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

Usa la función DBúsq para devolver el valor del campo NombreDeContacto de la tabla Proveedores donde el valor del campo IdDeProveedor de la tabla coincida con el valor del control IdDeProveedor en el formulario Proveedores.

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

Usa la función DBúsq para devolver el valor del campo NombreDeContacto de la tabla Proveedores donde el valor del campo IdDeProveedor de la tabla coincida con el valor del control IdDeProveedor en el formulario Nuevos proveedores.

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

Usa la función DSuma para devolver la suma total de los valores del campo ImporteDePedido de la tabla Pedidos donde IdCliente sea RATTC.

=DCount("[Retired]","[Assets]","[Retired]=Yes")

Usa la función DCont para devolver el número de valores de Sí en el campo Retirado (campo Sí/No) de la tabla Activos.

Principio de página

Operaciones de fecha

Realizar el seguimiento de valores de fecha y hora es una actividad esencial en las bases de datos. Por ejemplo, puede calcular el número de días transcurridos desde la fecha de una factura para calcular el vencimiento de sus cuentas por cobrar. Se puede dar formato a los valores de fecha y hora de diferentes formas, como se muestra en la tabla siguiente.

Expresión

Descripción

=Date()

Usa la función Fecha para mostrar la fecha actual con el formato mm-dd-yy, donde mm corresponde al mes (de 1 a 12), dd corresponde al día (de 1 a 31) y yy corresponde a los dos últimos dígitos del año (de 1980 a 2099).

=Format(Now(), "ww")

Usa la función Formato para mostrar el número de semana del año correspondiente a la fecha actual, donde ww representa las semanas de la 1 a la 53.

=DatePart("yyyy", [OrderDate])

Usa la función ParcFecha para mostrar el año de cuatro dígitos correspondiente al valor del control FechaDePedido.

=DateAdd("y", -10, [PromisedDate])

Usa la función AgregFecha para mostrar la fecha correspondiente a 10 días antes del valor del control FechaDeCompromiso.

=DateDiff("d", [OrderDate], [ShippedDate])

Usa la función DifFecha para mostrar la diferencia en número de días entre los valores de los controles FechaDePedido y FechaDeEnvío.

=[InvoiceDate] + 30

Usa operaciones aritméticas en fechas para calcular la fecha 30 días después de la fecha del campo o control FechaDeFactura.

Principio de página

Condiciones de solo dos valores

En las expresiones de ejemplo de la tabla siguiente se usa la función SiInm para devolver uno de dos valores posibles. Se pasan tres argumentos a la función SiInm: El primer argumento es una expresión que tiene que devolver un valor True o False. El segundo argumento es el valor que se devuelve si la expresión se cumple y el tercer argumento es el valor que se devuelve si la expresión no se cumple.

Expresión

Descripción

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

Usa la función SiInm (Si inmediato) para mostrar el mensaje "Pedido confirmado" si el valor del control Confirmado es Yes; en caso contrario, se muestra el mensaje "Order Not Confirmed.".

=IIf(IsNull([Country/region]), " ", [Country])

Usa las funciones SiInm y EsNulo para mostrar una cadena vacía si el valor del control País o región es nulo; en caso contrario, se muestra el valor del control País o región.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Usa las funciones SiInm y EsNulo para mostrar los valores de los controles Ciudad y CódigoPostal si el valor del control Región es nulo; en caso contrario, se muestran los valores de los campos o controles Ciudad, Región y CódigoPostal.

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Usa las funciones SiInm y EsNulo para que se muestre el mensaje "Comprobar si falta una fecha" si el resultado de restar FechaDeEnvío de FechaObligatoria es nulo; en caso contrario, se muestra el intervalo entre los valores de fecha de los controles denominados FechaObligatoria y FechaDeEnvío.

Principio de página

Consultas y filtros

Esta sección contiene ejemplos de expresiones que puede usar para crear un campo calculado en una consulta, o bien para proporcionar criterios para una consulta. Un campo calculado es una columna en una consulta que es el resultado de una expresión. Por ejemplo, puede calcular un valor, combinar valores de texto (como nombres y apellidos) o dar formato a la parte de una fecha.

Puede usar criterios en una consulta para limitar los registros con los que trabaja. Por ejemplo, puede usar el operador Between para especificar una fecha de inicio y de finalización y limitar los resultados de la consulta a los pedidos que se enviaron entre esas fechas.

Aquí se ofrecen ejemplos de expresiones que se pueden usar en las consultas.

Operaciones de texto

En las expresiones de la tabla siguiente se usan los operadores & y + para combinar cadenas de texto, usar funciones integradas para manipular una cadena de texto, o bien realizar otra operación con texto para crear un campo calculado.

Expresión

Descripción

FullName: [FirstName] & " " & [LastName]

Crea un campo llamado NombreCompleto donde se muestran los valores de los campos Nombre y Apellidos, separados por un espacio.

Address2: [City] & " " & [Region] & " " & [PostalCode]

Crea un campo llamado Dirección2 donde se muestran los valores de los campos Ciudad, Región y CódigoPostal, separados por espacios.

ProductInitial: Left([ProductName], 1)

Crea un campo llamado InicialDeProducto y, después, usa la función Izq para mostrar en el campo InicialProducto el primer carácter del valor del campo NombreDeProducto.

TypeCode: Right([AssetCode], 2)

Crea un campo llamado CódigoDeTipo y, después, usa la función Der para mostrar los dos últimos caracteres de los valores del campo CódigoDeActivo.

AreaCode: Mid([Phone],2,3)

Crea un campo llamado CódigoDeÁrea y, después, usa la función Medio para mostrar los tres caracteres a partir del segundo carácter del valor del campo Teléfono.

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Designa el campo calculado PrecioTotal y usa la función CCur para calcular el total de elementos de línea con un descuento aplicado.

Principio de página

Operaciones aritméticas

Puede usar expresiones para sumar, restar, multiplicar y dividir los valores en dos o más campos o controles. También puede realizar operaciones aritméticas en fechas. Por ejemplo, imagine que tiene un campo de fecha y hora llamado FechaObligatoria. La expresión =[RequiredDate] - 2 devuelve un valor de fecha y hora igual a dos días antes del valor del campo FechaObligatoria.

Expresión

Descripción

PrimeFreight: [Freight] * 1.1

Crea un campo llamado PrimaTransporte y, después, muestra los gastos de transporte más un 10 % en el campo.

OrderAmount: [Quantity] * [UnitPrice]

Crea un campo llamado ImporteDePedido y, después, muestra el producto de los valores de los campos Cantidad y PrecioUnidad.

LeadTime: [RequiredDate] - [ShippedDate]

Crea un campo llamado TiempoDeEspera y, después, muestra la diferencia entre los valores de los campos FechaObligatoria y FechaDeEnvío.

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Crea un campo llamado TotalDeExistencias y, después, muestra la suma de los valores en los campos UnidadesEnExistencias y UnidadesEnPedido.

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Crea un campo llamado PorcentajeDeTransporte y, después, muestra el porcentaje de los gastos de transporte en cada subtotal. Esta expresión usa la función Suma para obtener el total de los valores en el campo Transporte y, después, divide esos totales por la suma de los valores en el campo Subtotal.

Para usar esta expresión es necesario convertir la consulta de selección en una consulta de totales, ya que tiene que usar la fila Total en la cuadrícula de diseño y establecer la celda Total de ese campo en Expresión.

Para obtener más información sobre cómo crear una consulta de totales, vea el artículo Sumar datos con una consulta.

Si establece la propiedad Formato del campo en Porcentaje, no incluya *100.

Para obtener más información sobre cómo usar las funciones de agregado y calcular el total de los valores de campos y columnas, vea los artículos Sumar datos con una consulta, Contar datos con una consulta, Contar las filas de una hoja de datos y Mostrar totales de columna en una hoja de datos.

Principio de página

Operaciones de fecha

Casi todas las bases de datos almacenan y realizan un seguimiento de valores de fecha y hora. Para trabajar con valores de fecha y hora en Access, configure los campos de fecha y hora de las tablas en el tipo de datos Fecha y hora. Access puede realizar cálculos aritméticos en fechas (por ejemplo, puede calcular cuántos días han transcurrido desde la fecha de la factura para calcular el vencimiento de una cuenta por cobrar).

Expresión

Descripción

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

Crea un campo llamado TiempoDeRetraso y, después, usa la función DifFecha para mostrar el número de días entre la fecha de pedido y la fecha de envío.

YearHired: DatePart("yyyy",[HireDate])

Crea un campo llamado AñoDeContratación y, después, usa la función ParcFecha para mostrar el año en que se contrató a cada empleado.

MinusThirty: Date( )- 30

Crea un campo llamado MenosTreinta y, después, usa la función Fecha para mostrar la fecha 30 días anterior a la fecha actual.

Principio de página

Funciones de agregado de SQL

En las expresiones de la tabla siguiente se usan funciones SQL (lenguaje de consulta estructurado) que agregan o resumen datos. Con frecuencia puede ver estas funciones (por ejemplo, Suma, Cuenta y Prom) denominadas funciones de agregado.

Además de las funciones de agregado, Access también proporciona funciones de agregado de "dominio", que se usan para sumar o contar valores de forma selectiva. Por ejemplo, puede contar solo los valores de un rango específico o buscar un valor de otra tabla. En el conjunto de funciones de agregado de dominio se incluyen la función DSuma, la función DCont y la función DProm.

Para calcular los totales, con frecuencia se necesita crear una consulta de totales. Por ejemplo, para resumir por grupo es necesario usar una consulta de totales. Para habilitar una consulta de totales desde la cuadrícula de diseño de consulta, haga clic en Totales en el menú Vista.

Expresión

Descripción

RowCount: Count(*)

Crea un campo llamado NúmeroDeFilas y, después, usa la función Cuenta para contar el número de registros de la consulta, incluidos los registros con campos nulos (en blanco).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Crea un campo llamado PorcentajeDeTransporte y, después, calcula el porcentaje de los gastos de transporte en cada subtotal al dividir la suma de valores del campo Transporte y la suma de los valores del campo Subtotal (en este ejemplo se usa la función Suma).

Es necesario usar esta expresión con una consulta de totales. Si establece la propiedad Formato del campo en Porcentaje, no incluya *100.

Para más información sobre cómo crear una consulta de totales, vea el artículo Sumar datos mediante una consulta.

AverageFreight: DAvg("[Freight]", "[Orders]")

Crea un campo llamado PromedioDeTransporte y, después, usa la función DProm para calcular la media de los gastos de transporte de todos los pedidos combinados en una consulta de totales.

Principio de página

Campos con datos que faltan

Las expresiones que se muestran aquí funcionan con campos en los que es posible que falte información, como campos que contengan valores nulos (desconocidos o sin definir). Con frecuencia se encontrará con valores nulos, como un precio desconocido de un nuevo producto o un valor que un compañero de trabajo se olvidó de agregar a un pedido. La capacidad para identificar y procesar valores nulos puede ser una parte esencial de las operaciones de bases de datos y en las expresiones de la tabla siguiente se demuestran algunas formas comunes de trabajar con valores nulos.

Expresión

Descripción

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

Crea un campo llamado PaísRegiónActual y, después, usa las funciones SiInm y EsNulo para que se muestre una cadena vacía en ese campo si el campo PaísRegión contiene un valor nulo; en caso contrario, se muestra el contenido del campo PaísRegión.

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Crea un campo llamado TiempoDeEspera y, después, usa las funciones SiInm y EsNulo para que se muestre el mensaje "Comprobar si falta una fecha" si el valor del campo FechaObligatoria o FechaDeEnvío es nulo; en caso contrario, se muestra la diferencia entre las fechas.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

Crea un campo llamado VentasSemestrales y, después, muestra el total de los valores de los campos VentasPrimerTrimestre y VentasSegundoTrimestre (primero se usa la función Nz para convertir los valores nulos en cero).

Principio de página

Campos calculados con subconsultas

Puede usar una consulta anidada, también denominada una subconsulta, para crear un campo calculado. La expresión en la tabla siguiente es un ejemplo de un campo calculado que es el resultado de una subconsulta.

Expresión

Descripción

Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

Crea un campo llamado Cat y, después, muestra el NombreDeCategoría si el IdDeCategoría de la tabla Categorías es el mismo que el IdDeCategoría de la tabla Productos.

Principio de página

Valores de texto coincidentes

En las expresiones de ejemplo de esta tabla se muestran criterios que buscan valores de texto completos o parciales.

Campo

Expresión

Descripción

CiudadDeEnvío

"London"

Muestra pedidos enviados a Londres.

CiudadDeEnvío

"London" Or "Hedge End"

Usa el operador Or para mostrar los pedidos enviados a Londres o a Hedge End.

PaísRegiónDeEnvío

In("Canada", "UK")

Usa el operador In para mostrar los pedidos enviados a Canadá o al Reino Unido.

PaísRegiónDeEnvío

Not "USA"

Usa el operador Not para mostrar los pedidos enviados a países o regiones distintos de EE. UU.

NombreDeProducto

Not Like "C*"

Usa el operador Not y el carácter comodín * para mostrar los productos cuyo nombre no empiece por C.

NombreDeCompañía

>="N"

Muestra pedidos enviados a compañías cuyos nombres empiezan con las letras de la N a la Z.

CódigoDeProducto

Right([ProductCode], 2)="99"

Usa la función Dcha para mostrar los pedidos cuyo valor de CódigoDeProducto acabe en 99.

NombreDeEnvío

Like "S*"

Muestra pedidos enviados a clientes cuyos nombres empiezan con la letra S.

Principio de página

Criterios de fecha coincidentes

En las expresiones de la tabla siguiente se muestra el uso de fechas y funciones relacionadas en expresiones de criterios. Para más información sobre cómo escribir y usar valores de fecha, vea el artículo Agregar y personalizar formatos de fecha y hora.

Campo

Expresión

Descripción

FechaDeEnvío

#2/2/2017#

Muestra pedidos enviados el 2 de febrero de 2017.

FechaDeEnvío

Date()

Muestra los pedidos enviados hoy.

FechaObligatoria

Between Date( ) And DateAdd("m", 3, Date( ))

Usa el operador Between...And con las funciones AgregFecha y Fecha para mostrar los pedidos solicitados entre la fecha actual y tres meses a partir de la fecha actual.

FechaDePedido

< Date( ) - 30

Usa la función Fecha para mostrar los pedidos creados hace más de 30 días.

FechaDePedido

Year([OrderDate])=2017

Usa la función Año para mostrar los pedidos cuya fecha sea de 2017.

FechaDePedido

DatePart("q", [OrderDate])=4

Usa la función ParcFecha para mostrar los pedidos correspondientes al cuarto trimestre.

FechaDePedido

DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1

Usa las funciones SerieFecha, Año y Mes para mostrar los pedidos correspondientes al último día de cada mes.

FechaDePedido

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

Usa las funciones Año y Mes con el operador AND para mostrar los pedidos del año y mes actuales.

FechaDeEnvío

Between #1/5/2017# And #1/10/2017#

Usa el operador Between...And para mostrar los pedidos enviados después del 5 de enero de 2017 y antes del 10 de enero de 2017.

FechaObligatoria

Between Date( ) And DateAdd("M", 3, Date( ))

Usa el operador Between...And para mostrar los pedidos solicitados entre la fecha actual y tres meses a partir de la fecha actual.

FechaDeNacimiento

Month([BirthDate])=Month(Date())

Usa las funciones Mes y Fecha para mostrar los empleados cuyo cumpleaños se celebre el mes actual.

Principio de página

Buscar datos que faltan

Las expresiones de la tabla siguiente funcionan con campos en los que es posible que falte información (campos que pueden contener un valor nulo o una cadena de longitud cero). Un valor nulo representa la ausencia de información, no representa un cero o ningún valor específico. Access admite esta idea de información que falta, ya que el concepto es esencial para la integridad de una base de datos. En el mundo real, con frecuencia hay información que falta, incluso aunque solo sea de forma temporal (por ejemplo, el precio todavía sin determinar de un nuevo producto). Por lo tanto, una base de datos que modela una entidad del mundo real, como una empresa, tiene que ser capaz de registrar información que falta. Puede usar la función EsNulo para determinar si un campo o control contiene un valor nulo y puede usar la función Nz para convertir un valor nulo en cero.

Campo

Expresión

Descripción

RegiónDeEnvío

Is Null

Muestra pedidos de los clientes cuyo campo RegiónDeEnvío es nulo (falta).

RegiónDeEnvío

Is Not Null

Muestra pedidos de los clientes en los que el campo RegiónDeEnvío contiene un valor.

Fax

""

Muestra pedidos para clientes que no tienen una máquina de fax, indicado por un valor de cadena de longitud cero en el campo Fax, en lugar de un valor nulo (que falta).

Principio de página

Patrones de registro coincidentes con Like

El operador Like ofrece gran flexibilidad cuando se intenta buscar filas que siguen un patrón, ya que se puede usar Like con caracteres comodín y definir patrones que Access compara. Por ejemplo, el carácter comodín * (asterisco) busca una secuencia de caracteres de cualquier tipo, por lo que resulta fácil encontrar todos los nombres que empiezan con una letra. Por ejemplo, puede usar la expresión Like "S*" para encontrar todos los nombres que empiezan con la letra S. Para más información, vea el artículo Operador Like.

Campo

Expresión

Descripción

NombreDeEnvío

Like "S*"

Encuentra todos los registros en el campo NombreDeEnvío que empiezan con la letra S.

NombreDeEnvío

Like "*Imports"

Encuentra todos los registros en el campo NombreDeEnvío que terminan con la palabra "Importaciones".

NombreDeEnvío

Like "[A-D]*"

Encuentra todos los registros en el campo NombreDeEnvío que empiezan con las letras A, B, C o D.

NombreDeEnvío

Like "*ar*"

Encuentra todos los registros en el campo NombreDeEnvío en los que se incluye la secuencia de letras "ar".

NombreDeEnvío

Como "Casa Dewe?"

Encuentra todos los registros en el campo NombreDeEnvío donde se incluye "Casa" en la primera parte del valor y una cadena de cinco letras donde las primeras cuatro letras son "Dewe" y la última letra se desconoce.

NombreDeEnvío

Not Like "A*"

Encuentra todos los registros en el campo NombreDeEnvío que no empiezan con la letra A.

Principio de página

Filas coincidentes con agregados de SQL

Puede usar una función de agregado de dominio o de SQL si necesita sumar, contar o generar una media de valores de forma selectiva. Por ejemplo, puede que quiera contar solo dos valores de un intervalo determinado, o bien un valor que da como resultado Sí. En otras ocasiones, es posible que necesite buscar un valor de otra tabla para mostrarlo. En las expresiones de ejemplo de la tabla siguiente se usan las funciones de agregado de dominio para realizar un cálculo en un conjunto de valores y se usa el resultado como los criterios de consulta.

Campo

Expresión

Descripción

Transporte

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

Usa las funciones DDesvEst y DProm para mostrar todos los pedidos cuyos gastos de transporte sean superiores a la media más la desviación estándar de los gastos de transporte.

Cantidad

> DAvg("[Quantity]", "[Order Details]")

Usa la función DProm para mostrar los productos ordenados por cantidades superiores a la media de las cantidades de pedido.

Principio de página

Campos coincidentes con subconsultas

Las subconsultas (también denominadas consultas anidadas) se usan para calcular un valor y usarlo como un criterio. Las expresiones de ejemplo de la tabla siguiente coinciden con filas según los resultados devueltos por una subconsulta.

Campo

Expresión

Muestra

PrecioUnidad

(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

Productos cuyo precio es el mismo que el precio del sirope de anís.

PrecioUnidad

>(SELECT AVG([UnitPrice]) FROM [Products])

Productos que tienen un precio unitario superior a la media.

Salario

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

El salario de todos los representantes de ventas que es superior al de todos los empleados con el puesto "Gerente" o "Vicepresidente".

TotalDelPedido: [PrecioUnidad] * [Cantidad]

> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details])

Pedidos cuyo total sea superior al valor medio del pedido.

Principio de página

Consultas de actualización

Use una consulta de actualización para modificar los datos de uno o más campos existentes en una base de datos. Por ejemplo, puede sustituir valores o eliminarlos por completo. En esta tabla se demuestran algunas formas de usar expresiones en consultas de actualización. Use estas expresiones en la fila Actualizar en de la cuadrícula de diseño de consulta para el campo que quiera actualizar.

Para obtener más información sobre cómo crear consultas de actualización, vea el artículo Crear y ejecutar una consulta de actualización.

Campo

Expresión

Resultado

Título

"Salesperson"

Cambia un valor de texto a Comercial.

InicioDeProyecto

#8/10/17#

Cambia un valor de fecha a 10 de agosto de 2017.

Retirado

Yes

Cambia un valor de No en un campo Sí/No a Sí.

NúmeroPieza

"PN" & [PartNumber]

Agrega "NP" al principio de cada número de pieza especificado.

TotalDeArtículoDeLínea

[UnitPrice] * [Quantity]

Calcula el producto de PrecioUnidad y Cantidad.

Transporte

[Freight] * 1.5

Aumenta los gastos de transporte en un 50 %.

Ventas

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

Donde los valores de IdDeProducto de la tabla actual coinciden con los valores de IdDeProducto en la tabla Detalles del pedido, se actualizan los totales de ventas según el producto de Cantidad y PrecioUnidad.

CódigoPostalDeEnvío

Right([ShipPostalCode], 5)

Trunca los caracteres del extremo izquierdo, dejando los cinco caracteres del extremo derecho.

PrecioUnidad

Nz([UnitPrice])

Cambia un valor nulo (sin definir o desconocido) a cero (0) en el campo PrecioUnidad.

Principio de página

Instrucciones SQL

El lenguaje de consulta estructurado o SQL es el lenguaje de consulta que se usa en Access. Todas las consultas que cree en la vista Diseño de la consulta también se pueden expresar con SQL. Para ver la instrucción SQL de una consulta, haga clic en Vista SQL en el menú Vista. En la tabla siguiente se muestran ejemplos de instrucciones SQL en las que se usa una expresión.

Instrucción SQL que usa una expresión

Resultado

SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

Muestra los valores de los campos Nombre y Apellidos de los empleados cuyo apellido sea Fontiveros.

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

Muestra los valores de los campos IdDeProducto y NombreDeProducto en la tabla Productos de los registros donde el valor de IdDeCategoría coincide con el valor de IdDeCategoría especificado en un formulario abierto llamado Nuevos productos.

SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000;

Calcula el precio total medio de los pedidos en los que el valor del campo PrecioTotal es mayor que 1000 y lo muestra en un campo llamado Media de precio total.

SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10;

En un campo llamado NúmeroDeIdDeProducto, muestra el número total de productos para las categorías con más de 10 productos.

Principio de página

Expresiones de tabla

Las dos formas más comunes de usar expresiones en tablas son asignar un valor predeterminado y crear una regla de validación.

Valores de campo predeterminados

Al diseñar una base de datos, es posible que quiera asignar un valor predeterminado a un campo o control. Access después proporciona el valor predeterminado cuando se crea un registro que contiene el campo, o bien cuando se crea un objeto que contiene el control. Las expresiones de la tabla siguiente representan los valores predeterminados de ejemplo de un campo o control. Si un control está enlazado a un campo en una tabla y ese campo tiene un valor predeterminado, tendrá prioridad el valor predeterminado del control.

Campo

Expresión

Valor de campo predeterminado

Cantidad

1

1

Región

"MT"

MT

Región

"New York, N.Y."

Nueva York, Nueva York (tenga en cuenta que es necesario delimitar el valor entre comillas si se incluye puntuación).

Fax

""

Una cadena de longitud cero para indicar que, de forma predeterminada, este campo tiene que estar vacío, en lugar de contener un valor nulo.

Fecha de pedido

Date( )

Fecha actual

FechaDeVencimiento

Date() + 60

La fecha 60 días después de la fecha actual.

Principio de página

Reglas de validación de campo

Puede crear una regla de validación para un campo o control con una expresión. Después, Access comprueba la regla cuando se escriben datos en el campo o control. Para crear una regla de validación, modifique la propiedad ReglaDeValidación del campo o control. También puede configurar la propiedad TextoDeValidación, que contiene el texto que muestra Access cuando no se cumple la regla de validación. Si no establece la propiedad TextoDeValidación, Access mostrará un mensaje de error predeterminado.

En los ejemplos de la tabla siguiente se muestran las expresiones de regla de validación para la propiedad ReglaDeValidación y el texto asociado de la propiedad TextoDeValidación.

Propiedad ReglaDeValidación

Propiedad TextoDeValidación

<> 0

Escriba un valor distinto de cero.

0 Or > 100

El valor tiene que ser 0 o superior a 100.

Like "K???"

El valor tiene que tener cuatro caracteres y empezar con la letra K.

< #1/1/2017#

Escriba una fecha anterior a 01/01/2017.

>= #1/1/2017# And < #1/1/2008#

La fecha debe ser del año 2017.

Para obtener más información sobre la validación de datos, vea el artículo Crear una regla de validación para validar los datos de un campo.

Principio de página

Expresiones de macro

En algunos casos, es posible que quiera realizar una acción o una serie de acciones en una macro solo si se cumple una condición concreta. Por ejemplo, imagine que quiere que una acción solo se ejecute cuando el valor del cuadro de texto Contador sea igual a 10. Puede usar una expresión para definir la condición en la columna Condición de la macro:

[Counter]=10

Al igual que con la propiedad ReglaDeValidación, la expresión de la columna Condición es una expresión condicional. Tiene que dar como resultado un valor True o False. La acción solo se ejecuta cuando la condición se cumple.

Sugerencia    Para obligar a que Access omita temporalmente una acción, especifique False como condición. Esto puede resultar útil al intentar identificar problemas en una macro.

Usar esta expresión para realizar la acción

Si

[City]="Paris"

París es el valor de Ciudad en el campo del formulario desde el que se ejecutó la macro.

DCount("[OrderID]", "Orders") > 35

Hay más de 35 entradas en el campo IdDePedido de la tabla Pedidos.

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3

Hay más de tres entradas en la tabla Detalles del pedido para las que el campo IdDePedido de la tabla coincide con el campo IdDePedido del formulario Pedidos.

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

El valor del campo FechaDeEnvío del formulario desde el que se ejecuta la macro no es anterior al 2-feb-2017 y no es posterior al 2-mar-2017.

Forms![Products]![UnitsInStock] < 5

El valor del campo UnidadesEnExistencias del formulario Productos es inferior a 5.

IsNull([FirstName])

El valor de Nombre en el formulario desde donde se ejecuta la macro es nulo (no tiene ningún valor). Esta expresión equivale a [Nombre] es nulo.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100

El valor del campo PaísRegión del formulario desde el que se ejecuta la macro es Reino Unido y el valor del campo TotalPedidos del formulario TotalesDeVentas es mayor que 100.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

El valor del campo PaísRegión del formulario desde el que se ejecuta la macro es Francia, Italia o España, y el código postal no tiene 5 caracteres de longitud.

MsgBox("Confirm changes?",1)=1

Haga clic en Aceptar en un cuadro de diálogo que se muestre con la función CuadroMsj. Si hace clic en Cancelar en el cuadro de diálogo, Access omitirá la acción.

Principio de página

Vea también

Usar el Generador de expresiones

Introducción a las expresiones

Crear una expresión

Guía de la sintaxis 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.

×