You are on page 1of 24

Expresiones en Acces

En Office Access 2007, el trmino expresin es sinnimo de frmula. Una expresin se compone de varios elementos posibles que se pueden usar, solos o en combinacin, para obtener un resultado. Esos elementos son:

Identificadores: los nombres de campos de tabla o de controles en formularios o informes, o bien, las propiedades de esos campos o controles Operadores, como + (ms) o - (menos) Funciones, como SUMA o PROMEDIO Constantes: valores que no cambian, como cadenas de texto o nmeros no calculados por una expresin Las expresiones se pueden usar de varias maneras, entre otras para: realizar un clculo, recuperar el valor de un control o proporcionar criterios a una consulta. Ejemplos de expresiones que se usan en formularios e informes Las tablas que figuran en esta seccin incluyen ejemplos de expresiones que calculan un valor en un control ubicado en un formulario o informe. Para crear un control calculado, se escribe una expresin en la propiedadOrigen del control del control en vez de escribirla en un campo de tabla o consulta. En los siguientes pasos se explica cmo escribir una expresin en un control de cuadro de texto ubicado en un formulario o informe existente.

Crear un control calculado 1. En el panel de exploracin, haga clic con el botn secundario del mouse (ratn) en el formulario o Vista Diseo en el men contextual. informe que desee cambiar y, a continuacin, haga clic en 2.

En el formulario o informe, haga clic con el botn secundario del mouse en el control de cuadro de texto

que desee cambiar (y no en la etiqueta asociada al cuadro de texto) y, a continuacin, haga clic en Propiedades en el men contextual. 3. Si es necesario, haga clic en la ficha Todas o la ficha Datos. En ambas fichas figura la propiedad Origen

del control. 4. Haga clic en el cuadro situado junto a la propiedad Origen del control y escriba la expresin. Por

ejemplo, puede copiar y pegar una expresin de la columna denominada Expresin que aparece en la tabla de la siguiente seccin. 5. Cierre la hoja de propiedades.

Expresiones que combinan o manipulan texto

EXPRESIN ="N/A" =[Nombre] & " " & [Apellidos]

RESULTADO Muestra N/A. Muestra los valores que residen en los campos de tabla Nombre y Apellidos. En este ejemplo, se usa el operador & para combinar el campo Nombre, un carcter de espacio (entre comillas) y el campo Apellidos. Usa la funcin Izq para mostrar el primer carcter del valor de un campo o control denominado Nombre de producto. Usa la funcin Der para mostrar los dos ltimos caracteres del valor de un campo o control denominado Cdigo de activo. Usa la funcin Recortar para mostrar el valor del control Direccin sin espacios iniciales o finales. Usa la funcin SiInm para mostrar los valores de los controles Ciudad y Cdigo postal si el valor del control Regin es nulo; en caso contrario, muestra los valores de los controles Ciudad, Regin y Cdigo postal, separados por espacios. Usa el operador + y la propagacin de valores nulos para mostrar los valores de los controles Ciudad y Cdigo postal si el valor del campo d control Regin es nulo; en caso contrario, muestra los valores de los campos o controles Ciudad, Regin y Cdigo postal, separados por espacios. La propagacin de valores nulos significa que si algn componente de una expresin es nulo, toda la expresin ser nula. El operador + admite la propagacin de valores nulos; el operador & no la admite.

=Izq([Nombre de producto], 1)

=Der([Cdigo de activo], 2)

=Recortar([Direccin])

=SiInm(EsNulo([Regin]), [Ciudad] & " " & [Cdigo postal], [Ciudad] & " " & [Regin] & " " & [Cdigo postal])

=[Ciudad] & (" " + [Regin]) & " " & [Cdigo postal]

EXPRESIN

RESULTADO DE EJEMPLO

=[Pgina] ="Pgina " & [Pgina] ="Pgina " & [Pgina] & " de " & [Pginas] =[Pgina] & " de " & [Pginas] & " Pginas" =[Pgina] & "/" & [Pginas] & " Pginas" =[Pas o regin] & " - " & [Pgina] =Formato([Pgina], "000") ="Impreso el: " & Fecha() EXPRESIN =[Subtotal]+[Transporte]

1 Pgina 1 Pgina 1 de 3

1 de 3 Pginas

1/3 Pginas Reino Unido - 1 001 Impreso el: 31/12/07 RESULTADO Suma de los valores de los campos o controles denominados Subtotal y Transporte. Intervalo entre los valores de fecha de los campos o controles denominados FechaRequerida y FechaEnvo. Producto del valor del campo o control denominado Precio y 1,06 (suma un 6 por ciento al valor de Precio). Producto de los valores de los campos o controles denominados Cantidad y Precio. Cociente de los valores de los campos o controles denominados TotalEmpleado y TotalPasRegin.

=[FechaRequerida]-[FechaEnvo]

=[Precio]*1,06

=[Cantidad]*[Precio]

=[TotalEmpleado]/[TotalPasRegin]

EXPRESIN =Formularios![Pedidos]![IdPedido] =Formularios![Pedidos]![Subformulario Pedidos].Formulario![SubtotalPedido]

RESULTADO Valor del control IdPedido en el formulario Pedidos. Valor del control SubtotalPedido en el subformulario denominado Subformulario Pedidos del formulario Pedidos.

=Formularios![Pedidos]![Subformulario Pedidos]![IdProducto].Columna(2)

Valor de la tercera columna de IdProducto, un cuadro de lista de columnas mltiples en el subformulario denominado Subformulario Pedidos del formulario Pedidos. (Observe que 0 hace referencia a la primera columna, 1 a la segunda, y as sucesivamente). Producto del valor del control Precio ubicado en el subformulario denominado Subformulario Pedidos del formulario Pedidos y 1,06 (suma el 6 por ciento al valor del control Precio). Valor del control IdPedido ubicado en el formulario principal del actual subformulario. RESULTADO Valor del control denominado "IdPedido" en el informe denominado "Factura". Calor del control denominado Total Ventas ubicado en el subinforme denominado Subinforme Resumen del informe denominado Resumen. Valor del control denominado IdPedido en el formulario principal del actual subinforme. DESCRIPCIN Usa la funcin Promedio para mostrar el promedio de los valores de un campo de tabla o control denominado "Transporte". Usa la funcin Cuenta para mostrar el nmero de registros en el control denominado IdPedido. Usa la funcin Suma para mostrar la suma de los valores del control denominado Ventas. Usa la funcin Suma para mostrar la suma del producto de los valores de los controles denominados Cantidad y Precio. Muestra el porcentaje de ventas, determinado por la divisin del valor del control denominado Ventas entre la suma de todos los valores del control Ventas. NOTA Si establece la propiedad Formato del control en Porcentaje, no incluya *100 en la expresin.

=Formularios![Pedidos]![Subformulario Pedidos]![Precio] * 1,06

=Parent![IdPedido]

EXPRESIN =Informe![Factura]![IdPedido]

=Informe![Resumen]![Subinforme Resumen]![Total Ventas]

=Parent![IdPedido]

EXPRESIN =Promedio([Transporte])

=Cuenta([IdPedido])

=Suma([Ventas])

=Suma([Cantidad]*[Precio])

=[Ventas]/Suma([Ventas])*100

EXPRESIN =DBsq("[Nombre de contacto]", "[Proveedores]", "[Id. de proveedor] = " & Formularios("Proveedores")("[Id. de proveedor]"))

DESCRIPCIN Usa la funcin DBsq para devolver el valor del campo Nombre de contacto de la tabla denominada Proveedores donde el valor del campo Id. de proveedor de la tabla coincida con el valor del control Id. de proveedor ubicado en el formulario denominado Proveedores. Usa la funcin DBsq para devolver el valor del campo Nombre de contacto de la tabla denominada Proveedores donde el valor del campo Id. de proveedor de la tabla coincida con el valor del control Id. de proveedor ubicado en el formulario denominado Nuevos proveedores. Usa la funcin DSuma para devolver el total de los valores del campo Importe de pedido de la tabla denominada Pedidos donde el Id. de cliente sea RATTC. Usa la funcin DCuenta para devolver el nmero de valores S en el campo Retirados (campo de tipo S/No) de la tabla denominada Activos. DESCRIPCIN Usa la funcin Fecha para mostrar la fecha actual con el formato mm-dd-aa, donde mmes el mes (del 1 al 12), dd es el da (del 1 al 31) y aa representa los dos ltimos dgitos del ao (de 1980 a 2099). Usa la funcin Formato para mostrar el nmero de semana del ao correspondiente a la actual fecha, donde ss representa las semanas del 1 al 53. Usa la funcin ParcFecha para mostrar el ao

=DBsq("[Nombre de contacto]", "[Proveedores]", "[Id. de proveedor] = " & Formularios![Nuevos proveedores]![Id. de proveedor])

=DSuma("[Importe de pedido]", "[Pedidos]", "[Id. de cliente] = 'RATTC'")

=DCuenta("[Retirados]","[Activos]","[Retirados]=S")

EXPRESIN =Fecha()

=Formato(Ahora(), "ss")

=ParcFecha("aaaa", [FechaPedido])

de cuatro dgitos correspondiente al valor del control denominado IdPedido. =AgregFecha("a", -10, [Fecha prometida]) Usa la funcin AgregFecha para mostrar la fecha correspondiente a 10 das antes del valor del control denominado Fecha prometida. Usa la funcin DifFecha para mostrar la diferencia en nmero de das entre los valores de los controles denominados FechaPedido y FechaEnvo. Usa operaciones aritmticas con fechas para calcular la fecha correspondiente a 30 das despus de la fecha del campo o control denominado FechaFactura. DESCRIPCIN Usa la funcin SiInm para que se muestre el mensaje "Pedido confirmado" si el valor del control Confirmado es S; en caso contrario, se muestra el mensaje "Pedido sin confirmar". Usa las funciones SiInm y EsNulo para que se muestre una cadena vaca si el valor del control Pas o regin es nulo; en caso contrario, se muestra el valor del control Pas o regin. Usa las funciones SiInm y EsNulo para que se muestren los valores de los controles denominados Ciudad y Cdigo postal si el valor del control denominado Regin es nulo; en caso contrario, se muestran los valores de los campos o controles Ciudad, Regin y Cdigo postal. Usa las funciones SiInm y EsNulo para que se muestre el mensaje "Comprobar si falta una fecha" si el resultado de restar FechaEnvo de FechaRequerida es nulo; en caso contrario, se muestra el intervalo entre los valores de fecha de los controles denominados FechaRequerida y FechaEnvo.

=DifFecha("d", [FechaPedido], [FechaEnvo])

=[FechaFactura] + 30

EXPRESIN =SiInm([Confirmado] = "S", "Pedido confirmado", "Pedido sin confirmar")

=SiInm(EsNulo([Pas o regin]), " ", [Pas])

=IIf(EsNulo([Regin]),[Ciudad]&" "& [CdigoPostal], [Ciudad]&" "&[Regin]&" " &[CdigoPostal])

=SiInm(EsNulo([FechaRequerida]) O EsNulo([FechaEnvo]), "Comprobar si falta una fecha", [FechaRequerida] [FechaEnvo])

EXPRESIN NombreCompleto: [Nombre] & " " & [Apellidos]

DESCRIPCIN Crea un campo denominado NombreCompleto que muestre los valores de los campos denominados Nombre y Apellidos, separados por un espacio. Crea un campo denominado Direccin2 que muestre los valores de los campos Ciudad, Regin y Cdigo postal, separados por espacios. Crea un campo denominado InicialProducto y, a continuacin, usa la funcin Izqpara mostrar en el campo denominado InicialProducto el primer carcter del valor del campo Nombre de producto. Crea un campo denominado CdigoTipo y, a continuacin, usa la funcin Derpara mostrar los dos ltimos caracteres de los valores del campo Cdigo de activo. Crea un campo denominado Cdigorea y, a continuacin, usa la funcin Mediopara mostrar los tres caracteres a partir del segundo carcter del valor del campo Telfono. DESCRIPCIN Crea un campo denominado TransporteBsico y, a continuacin, muestra los gastos de transporte ms un 10 por ciento en el campo. Crea un campo denominado ImportePedido y, a continuacin, muestra el producto de los valores de los campos Cantidad y PrecioUnidad. Crea un campo denominado TiempoDeEspera y, a continuacin, muestra la diferencia entre los valores de los campos FechaRequerida y FechaEnvo. Crea un campo denominado TotalExistencias y, a continuacin, muestra la suma de los valores

Direccin2: [Ciudad] & " " & [Regin] & " " & [Cdigo postal]

InicialProducto:Izq([Nombre de producto], 1)

CdigoTipo: Der([Cdigo de activo], 2)

Cdigorea:Medio([Telfono],2,3)

EXPRESIN TransporteBsico: [Transporte] * 1.1

ImportePedido: [Cantidad] * [PrecioUnidad]

TiempoDeEspera: [FechaRequerida] - [FechaEnvo]

TotalExistencias: [Unidades en existencias]+[Unidades de pedido]

de los campos Unidades en existencias y Unidades de pedido. PorcentajeTransporte:Suma([Transporte])/Suma([Subtotal]) *100 Crea un campo denominado PorcentajeTransporte y, a continuacin, muestra el porcentaje de los gastos de transporte en cada subtotal. Esta expresin usa la funcin Suma para sumar los valores del campo Transporte y, a continuacin, divide esos totales entre la suma de los valores del campo Subtotal. Para usar esta expresin, debe convertir la consulta de seleccin en una consulta de totales porque debe usar la fila Total en la cuadrcula de diseo, y debe establecer la celda Total de este campo en Expresin. Para obtener ms informacin sobre la creacin de una consulta de totales, vea el artculo Sumar datos mediante una consulta. Si establece la propiedad Formato del campo en Porcentaje, no incluya*100. DESCRIPCIN Crea un campo denominado Intervalo y, a continuacin, usa la funcin DifFechapara mostrar el nmero de das entre la fecha de pedido y la fecha de envo. Crea un campo denominado AoContratacin y, a continuacin, usa la funcinParcFecha para mostrar el ao en que se contrat a cada empleado. Crea un campo denominado MenosTreinta y, a continuacin, usa la funcinFecha para mostrar la fecha 30 das anterior a la fecha actual. DESCRIPCIN Crea un campo denominado NmeroFilas y, a continuacin, usa la funcin Cuenta para contar el nmero de registros de la consulta, incluidos los registros con campos nulos (en

EXPRESIN Intervalo: DifFecha("d", [FechaPedido], [FechaEnvo])

AoContratacin:ParcFecha("aaaa",[FechaContratacin])

MenosTreinta: Fecha( )- 30

EXPRESIN NmeroFilas:Cuenta(*)

blanco). PorcentajeTransporte:Suma([Transporte])/Suma([Subtotal]) *100 Crea un campo denominado PorcentajeTransporte y, a continuacin, calcula el porcentaje de los gastos de transporte en cada subtotal mediante la divisin de la suma de valores del campo Transporte y la suma de los valores del campo Subtotal. (En este ejemplo, se usa la funcin Suma.) NOTA Esta expresin debe usarse con una consulta de totales. Si establece la propiedad Formato del campo en Porcentaje, no incluya*100. . Para obtener ms informacin sobre la creacin de una consulta de totales, vea el artculo Sumar datos mediante una consulta. Crea un campo denominado TransporteMedio y, a continuacin, usa la funcin DProm para calcular el promedio de los gastos de transporte de todos los pedidos combinados en una consulta de totales. DESCRIPCIN Crea un campo denominado PasReginActual y, a continuacin, usa las funciones SiInm y EsNulo para que se muestre una cadena vaca en ese campo si el campo PasRegin contiene un valor nulo; en caso contrario, se muestra el contenido del campo PasRegin. Crea un campo denominado TiempoDeEspera y, a continuacin, usa las funciones SiInm y EsNulo para que se muestre el mensaje "Comprobar si falta una fecha" si el valor del campo FechaRequerida o del campo FechaEnvo es nulo; en caso contrario, se muestra la diferencia entre las fechas. Crea un campo denominado VentasSemestrales y, a continuacin, muestra el total de los valores de los campos

TransporteMedio: DProm("[Transporte]", "[Pedidos]")

EXPRESIN PasReginActual:SiInm(EsNulo([PasRegin]), " ", [PasRegin])

TiempoDeEspera: =SiInm(EsNulo([FechaRequerida] [FechaEnvo]), "Comprobar si falta una fecha", [FechaRequerida] - [FechaEnvo])

VentasSemestrales:Nz([VentasPrimerTrimestre]) + Nz([VentasSegundoTrimestre])

VentasPrimerTrimestre y VentasSegundoTrimestre usando primero la funcin Nz para convertir los valores nulos en cero. EXPRESIN Cat: (SELECT [NombreCategora] FROM [Categoras] WHERE [Productos].[IdCategora]=[Categoras].[IdCategora]) DESCRIPCIN Crea un campo denominado Cat y, a continuacin, muestra el nombre de categora si el Id. de categora de la tabla Categoras es el mismo que el Id. de categora de la tabla Productos. DESCRIPCIN Muestra los pedidos enviados a Londres. Usa el operador O para mostrar los pedidos enviados a Londres o Hedge End. Usa el operador En para mostrar los pedidos enviados a Canad o al Reino Unido. Usa el operador No para mostrar los pedidos enviados a pases o regiones que no sean los Estados Unidos. Usa el operador No y el carcter comodn * para mostrar los productos cuyo nombre no comience por C. Muestra los pedidos enviados a las compaas cuyo nombre comience por las letras comprendidas entre la N y la Z. Usa la funcin Der para mostrar los pedidos cuyo valor de CdigoProducto acabe en 99. Muestra los pedidos enviados a clientes cuyo nombre comience con la letra S.

CAMPO CiudadEnvo CiudadEnvo

EXPRESIN "Londres" "Londres" O "Hedge End"

ReginCiudadEnvo

En("Canad", "Reino Unido")

ReginCiudadEnvo

No "EE.UU."

NombreProducto

No como "C*"

NombreCompaa

>="N"

CdigoProducto

Der([CdigoProducto], 2)="99"

NombreEnvo

Como "S*"

CAMPO FechaEnvo

EXPRESIN #02.02.2007#

DESCRIPCIN Muestra los pedidos enviados el 2 de febrero de 2007. Muestra los pedidos enviados hoy. Usa el operador Entre...Y as como las funcionesAgregFecha y Fecha para mostrar los pedidos requeridos entre la fecha de hoy y tres meses a partir de la fecha actual. Usa la funcin Fecha para mostrar los pedidos con una antigedad de ms de 30 das. Usa la funcin Ao para mostrar los pedidos cuya fecha de pedido corresponda al 2007. Usa la funcin ParcFecha para mostrar los pedidos correspondientes al cuarto trimestre de calendario. Usa las funciones SerieFecha, Ao y Mes para mostrar los pedidos correspondientes al ltimo da de cada mes. Usa las funciones Ao y Mes as como el operadorY para mostrar los pedidos correspondientes al ao y al mes actuales. Usa el operador Entre...Y para mostrar los pedidos enviados despus del 5 de enero de 2007 y antes del 10 de enero de 2007. Usa el operador Entre...Y para mostrar los pedidos requeridos entre la fecha de hoy y tres meses a partir de la fecha actual. Usa las funciones Mes y Fecha para mostrar a los empleados cuyo cumpleaos se celebre este mes.

FechaEnvo FechaObligatoria

Fecha( ) Entre Fecha( ) Y AgregFecha("m", 3, Fecha( ))

FechaPedido

< Fecha() - 30

FechaPedido

Ao([FechaPedido])=2007

FechaPedido

ParcFecha("t", [FechaPedido])=4

FechaPedido

SerieFecha(Ao ([FechaPedido]),Mes([FechaPedido])+1, 1)-1 Ao([FechaPedido])= Ao(Ahora()) Y Mes([FechaPedido])= Mes(Ahora())

FechaPedido

FechaEnvo

Entre #05.01.2007# y #10.01.2007#

FechaObligatoria

Entre Fecha() Y AgregFecha("M", 3, Fecha())

Fecha de nacimiento

Mes([FechaNacimiento])=Mes(Fecha())

CAMPO ReginEnvo

EXPRESIN Es Nulo

DESCRIPCIN Muestra los pedidos de los clientes cuyo campo ReginEnvo sea nulo (informacin que falta). Muestra los pedidos de los clientes cuyo campo ReginEnvo contenga un valor. Muestra los pedidos de los clientes que no tienen una mquina de fax, lo que se indica mediante un valor de cadena de longitud cero en el campo Fax en lugar de un valor nulo (informacin que falta).

ReginEnvo Fax

No es Nulo ""

CAMPO NombreEnvo

EXPRESIN Como "S*"

DESCRIPCIN Busca todos los registros del campo NombreEnvo que empiecen con la letra S. Busca todos los registros del campo NombreEnvo que terminen con la palabra Importaciones. Busca todos los registros del campo NombreEnvo que comiencen con la letra A, B, C D. Busca todos los registros del campo NombreEnvo que incluyan la secuencia de letras "ar". Busca todos los registros del campo NombreEnvo que incluyan "Casa" en la primera parte del valor y una cadena de cinco letras donde las cuatro primeras letras son "Dewe" y la ltima letra es desconocida. Busca todos los registros del campo NombreEnvo que no empiecen con la letra A. DESCRIPCIN Usa las funciones DDesvEst y DProm para mostrar todos los pedidos cuyos gastos de transporte sean mayores que el promedio ms la desviacin estndar de los gastos de transporte. Usa la funcin DProm para mostrar los productos

NombreEnvo

Como "*Importaciones"

NombreEnvo

Como "[A-D]*"

NombreEnvo

Como "*ar*"

NombreEnvo

Como "Casa Dewe?"

NombreEnvo

No como "A*"

CAMPO Transporte

EXPRESIN > (DDesvEst("[Transporte]", "Pedidos") +DProm("[Transporte]", "Pedidos")) > DProm("[Cantidad]", "[Detalles

Cantidad

de pedidos]")

ordenados por cantidad mayor que el promedio de las cantidades de pedido. MUESTRA Productos cuyo precio sea igual que el precio del sirope de regaliz.

CAMPO PrecioUnidad

EXPRESIN (SELECT [PrecioUnidad] FROM [Productos] WHERE [NombreProducto] = "Sirope de regaliz") >(SELECT AVG([PrecioUnidad]) FROM [Productos]) > ALL (SELECT [Salario] FROM [Empleados] WHERE ([Cargo] LIKE "*Director*") OR ([Cargo] LIKE "*Vicepresidente*")) > (SELECT AVG([PrecioUnidad] * [Cantidad]) FROM [Detalles de pedidos]) EXPRESIN "Vendedor" #10.08.2007# S "NP" & [NmeroPieza]

PrecioUnidad

Productos cuyo precio por unidad sea mayor que el promedio. Salario de todos los representantes cuyo salario sea mayor que el de los empleados con cargos de "Director" o "Vicepresidente".

Salario

TotalPedido: [PrecioUnidad] * [Cantidad] CAMPO Ttulo InicioProyecto Retirados NmeroPieza

Pedidos cuyo total sea mayor que el valor de pedido medio.

RESULTADO Cambia un valor de texto a Vendedor. Cambia un valor de fecha al 10 de agosto de 2007. Cambia a S un valor No de un campo de tipo S/No. Agrega NP al principio de cada nmero de pieza especificado. Calcula el producto de PrecioUnidad y Cantidad. Incrementa los gastos de transporte en un 50 por ciento. Cuando los valores de IdProducto de la actual tabla coinciden con los valores de IdProducto de la tabla Detalles de pedidos, se actualizan los totales de ventas basndose en el producto de Cantidad y PrecioUnidad.

TotalArtculoLnea Transporte

[PrecioUnidad] * [Cantidad] [Transporte] * 1,5

Ventas

DSuma("[Cantidad] * [PrecioUnidad]", "Detalles de pedidos", "[IdProducto]=" & [IdProducto])

CdigoPostalEnvo

Der([CdigoPostalEnvo], 5)

Trunca los caracteres situados ms a la izquierda, dejando los cinco caracteres ms situados a la derecha. Cambia un valor nulo (valor sin definir o desconocido) a cero (0) en el campo PrecioUnidad. RESULTADO Muestra los valores de los campos Nombre y Apellidos de los empleados cuyo apellido sea Cornejo. Muestra los valores de los campos IdProducto y NombreProducto de la tabla Productos para los registros donde el valor de IdCategora coincida con el valor de IdCategora especificado en un formulario abierto denominado Nuevos productos. Calcula el precio total medio de los pedidos para los que el valor del campo PrecioTotal sea mayor que 1.000 y lo muestra en un campo denominado Precio total medio. En un campo denominado NmeroDeIdProducto, muestra el nmero total de productos de las categoras con ms de 10 productos. VALOR DE CAMPO PREDETERMINADO 1 MT Nueva York, N.Y. (Observe que debe escribir el valor entre comillas si incluye puntuacin.) Cadena de longitud cero que indica que, de manera predeterminada, este campo debe estar vaco en vez de contener un valor nulo. Fecha actual Fecha a los 60 das de la fecha actual

PrecioUnidad

Nz([PrecioUnidad])

INSTRUCCIN SQL QUE USA UNA EXPRESIN SELECT [Nombre],[Apellidos] FROM [Empleados] WHERE [Apellidos]="Cornejo" SELECT [IdProducto],[NombreProducto] FROM [Productos] WHERE [IdCategora]=Formularios![Nuevos productos]![IdCategora];

SELECT Avg([PrecioTotal]) AS [Precio total medio] FROM [Detalles de pedidos ampliados] WHERE [PrecioTotal]>1000;

SELECT [IdCategora], Count([IdProducto]) AS [NmeroDeIdProducto] FROM [Productos] GROUP BY [IdCategora] HAVING Count([IdProducto])>10; CAMPO Cantidad Regin Regin EXPRESIN 1 "MT" "Nueva York, N.Y."

Fax

""

Fecha de pedido FechaVencimiento

Fecha( ) Fecha() +60

Reglas de Validacin
Ejemplos de expresiones de regla de validacin de campo Se puede crear una regla de validacin para un campo o control mediante una expresin. De este modo, Access impone la regla cuando se incluyen datos en el campo o control. Para crear una regla de validacin, modifique la propiedad Regla de validacin del campo o control. Se recomienda establecer asimismo la propiedad Texto de validacin, que contiene el texto que Access muestra cuando se infringe la regla de validacin. Si no se establece la propiedad Texto de validacin, Access muestra un mensaje de error predeterminado. Agregar una regla de validacin a un campo 1. En el panel de exploracin, haga clic con el botn secundario en la tabla que desea cambiar y despus haga clic en Vista Diseo en el men contextual. 2. 3. tablas. 4. Escriba la expresin o haga clic en el botn Generar situado a la derecha del cuadro de propiedad Haga clic en el campo que desee cambiar. Haga clic en el cuadro de propiedad Regla de validacin, ubicado en la seccin inferior del diseador de

para crear una expresin mediante el Generador de expresiones. NOTA No coloque el operador = delante de la expresin cuando cree una regla de validacin. Los ejemplos que figuran en la siguiente tabla muestran las expresiones de regla de validacin para la propiedadRegla de validacin y el texto asociado de la propiedad Texto de validacin. PROPIEDAD REGLA DE VALIDACIN <> 0 0 Or > 100 Como "K???" < #01.01.2007# >= #01.01.2007# Y < #01.01.2008# PROPIEDAD TEXTO DE VALIDACIN Especifique un valor distinto de cero. El valor debe ser igual que cero o mayor que 100. El valor debe constar de cuatro caracteres y comenzar por la letra K. Especifique una fecha anterior al 1 de enero de 2007. La fecha debe ser del ao 2007.

Ejemplos de expresiones de condiciones de macro En algunos casos, quizs desee llevar a cabo una accin o una serie de acciones en una macro solamente si se cumple una condicin concreta. Por ejemplo, supongamos que desea que se ejecute una accin de macro solamente si el valor del cuadro de texto Contador es 10. Para ello, use una expresin para definir la condicin en la columna Condicin de la macro [Contador]=10.

Agregar una condicin para una accin de macro 1. En el panel de exploracin, haga clic con el botn secundario del mouse en la macro que desee cambiar y, a continuacin, haga clic en Vista Diseo en el men contextual. 2. Si no ve la columna Condicin en el diseador de macros, en la ficha Diseo, en el grupo Mostrar u

ocultar, haga clic en Condiciones. 3. Haga clic en la celda Condicin correspondiente a la accin de macro que desee cambiar y, a

continuacin, escriba la expresin adicional. 4. Guarde los cambios y, a continuacin, cierre la macro.

Al igual que en el caso de la propiedad Regla de validacin, la expresin de la columna Condicin es una expresin condicional. Su valor debe ser True o False. La accin se realizar nicamente si se cumple la condicin (True). USE ESTA EXPRESIN PARA LLEVAR A CABO LA ACCIN [Ciudad]="Pars" SI Pars es el valor de Ciudad en el campo en el formulario desde el cual se ejecut la macro. Hay ms de 35 entradas en el campo IdPedido de la tabla Pedidos. Hay ms de tres entradas en la tabla Detalles de pedidos para los cuales el campo IdPedido de la tabla coincide con el campo IdPedido del formulario Pedidos. El valor del campo FechaEnvo del formulario desde el cual se ejecuta la macro no es anterior al 2-Feb2007 y no es posterior al 2-Mar-2007. El valor del campo UnidadesEnStock del formulario Productos es menor que cinco. El valor Nombre del formulario desde el que se ejecuta la macro es nulo (no tiene valor). Esta expresin es equivalente a [Nombre] Es Nulo. El valor del campo PasRegin del formulario desde el cual se ejecuta la macro es el Reino Unido y el valor del campo TotalPedidos del formulario TotalVentas es mayor que 100. El valor del campo PasRegin del formulario desde el

DCuenta("[IdPedido]", "Pedidos") > 35

DCuenta("*", "[Detalles de pedidos]", "[IdPedido]=" & Formularios![Pedidos]![IdPedido]) > 3

[FechaEnvo] Entre #2-Feb-2007# Y #2-Mar-2007#

Formularios![Productos]![UnidadesEnExistencias] < 5

EsNulo([Nombre])

[PasRegin]="Reino Unido" Y Formularios![TotalVentas]![TotalPedidos] > 100

[PasRegin] En ("Francia", "Italia", "Espaa")

Y Longitud([CdigoPostal])<>5

cual se ejecuta la macro es Francia, Italia o Espaa, y el cdigo postal no es de 5 caracteres de longitud. Se hace clic en Aceptar en un cuadro de dilogo que muestre la funcinCuadroMsj. Si se hace clic en Cancelar en el cuadro de dilogo, Access omite la accin.

CuadroMsj("Confirmar cambios?",1)=1

REGLAS DE VALIDACIN Obtener informacin sobre las reglas de validacin Una regla de validacin limita o controla lo que los usuarios pueden escribir en un campo de tabla o un control (como un cuadro de texto) de un formulario. Microsoft Office Access 2007 permite validar los datos de diversas maneras y, a menudo, se usan varias de esas tcnicas para definir una regla de validacin. Las reglas de validacin se pueden considerar como un conjunto de capas y se pueden usar algunas o todas esas capas para asegurar que los usuarios escriben correctamente los datos.

Tipos de datos En general, los tipos de datos representan la primera capa de validacin. Cuando se disea una tabla de base de datos, se define un tipo de datos para cada campo de la tabla y ese tipo de datos restringe lo que los usuarios pueden escribir. Por ejemplo, los campos de tipo Fecha/Hora aceptan nicamente fechas y horas, un campo de tipo Moneda acepta nicamente datos monetarios, etc. Tamaos de campo Los tamaos de campo son otra capa de validacin. Por ejemplo, si se crea un campo que almacene nombres, se puede configurarlo de modo que acepte un mximo de 20 caracteres. De este modo, se puede evitar que usuarios malintencionados peguen grandes cantidades de texto incoherente en el campo, o bien, que un usuario sin experiencia escriba por error un nombre y un apellido en un campo diseado para que slo pueda contener un nombre. Propiedades de tabla Las propiedades de tabla proporcionan tipos de validacin muy especficos. Por ejemplo, se puede establecer la propiedad Requerido en S y, como resultado, obligar a los usuarios a escribir un valor en un campo.

Mscaras de entrada Se puede usar una mscara de entrada para validar los datos obligando a los usuarios a escribir los valores de una manera determinada. Por ejemplo, una mscara de entrada puede obligar a los usuarios a escribir las fechas en un formato europeo, como 14.04.2007. Puede usar algunas o todas estas tcnicas para validar los datos. Algunas de estas caractersticas, como los tipos de datos, forman parte de la base de datos de forma predeterminada, pero otras tcnicas, como las propiedades de campo, las reglas de validacin y las mscaras de entrada, las puede usar a su discrecin. En este artculo se explica cmo usar las propiedades Texto de validacin y Regla de validacin en los campos de tabla, consultas y controles de formulario. En este artculo no se abordan las dems herramientas de validacin, como son los tipos de datos, los tamaos de campo y las mscaras de entrada.

Tipos de reglas de validacin Se pueden crear dos tipos bsicos de reglas de validacin:

Reglas de validacin de campo Use una regla de validacin de campo para comprobar el valor especificado en un campo al salir del campo. Por ejemplo, supongamos que tiene un campo de fecha y especifica>=#01/01/2007# en la propiedad Regla de validacin de ese campo. La regla obliga a los usuarios a escribir fechas que coincidan o sean posteriores al 1 de enero de 2007. Si especifica una fecha anterior a 2007 e intenta ir a otro campo, Access evitar que salga del campo hasta que solucione el problema. Reglas de validacin de registro (o tabla) Use una regla de validacin de registro para controlar cundo puede guardar un registro (una fila de una tabla). A diferencia de las reglas de validacin de campo, las reglas de validacin de registro hacen referencia a otros campos de la misma tabla. Las reglas de validacin de registro sirven para comprobar los valores de un campo con respecto a los valores de otro campo. Por ejemplo, supongamos que su compaa le obliga a enviar los productos en un plazo de 30 das y, si no lo hace, deber reembolsar al cliente parte del precio de compra. Podr definir una regla de validacin de registro como[FechaObligatoria]<=[FechaPedido]+30 para evitar que alguien especifique una fecha de envo (el valor del campo FechaObligatoria) demasiado lejana. Dnde usar las reglas de validacin Se pueden definir reglas de validacin para las tablas y los controles de formularios. Cuando se definen reglas para tablas, esas reglas se aplican cuando se importan los datos. Para agregar reglas de validacin a una tabla, se abre la tabla en la vista Diseo y se configuran varias propiedades de la tabla. Para agregar reglas de validacin a un formulario, se abre el formulario en la vista Diseo y se agregan las reglas a las propiedades de los controles individuales.

Lo que se puede incluir en una regla de validacin Las reglas de validacin pueden contener expresiones, es decir, funciones que devuelven un solo valor. Las expresiones se pueden usar para realizar clculos, manipular caracteres o comprobar datos. Cuando se crean reglas de validacin, se usan las expresiones principalmente para comprobar datos. Por ejemplo, una expresin puede comprobar si existe un valor de una serie de valores, como "Tokio" O "Mosc" O "Pars" O "Helsinki". Las expresiones tambin pueden realizar operaciones matemticas. Por ejemplo, la expresin <100 obliga a los usuarios a especificar valores menores que 100. La expresin ([FechaPedido] - [FechaEnvo]) calcula el nmero de das transcurridos entre la fecha en que se hizo el pedido y la fecha de envo. Los pasos descritos en las siguientes secciones explican cmo se validan los datos de tablas, formularios, consultas y operaciones de importacin. Validar datos al escribirlos en los campos de una tabla Los pasos descritos en esta seccin explican cmo crear reglas de validacin para campos y registros, y explican cmo probar una nueva regla de validacin con datos existentes. Se pueden especificar reglas de validacin para todos los tipos de datos, salvo Autonumrico, Objeto OLE, Datos adjuntos y campos de tipo Nmero definidos como Id. de rplica.

Validar los datos de un campo 1. En el panel de exploracin, haga clic con el botn secundario del mouse (ratn) en la tabla que desee cambiar y, a continuacin, haga clic en Vista Diseo. 2. 3. En la columna Nombre del campo, seleccione el campo que desee cambiar. En la seccin inferior del diseador de consultas, en la ficha General, seleccione el cuadro de la

propiedadRegla de validacin y, a continuacin, escriba la regla de validacin. O bien, Haga clic en la ficha Datos de la hoja de propiedades, haga clic en de expresiones y crear una expresin. a continuacin para iniciar el Generador

Para obtener ms informacin sobre el uso del Generador de expresiones, vea el artculo Crear una expresin. Escriba una regla que se aplique nicamente al campo. Por ejemplo, puede escribir >0 para obligar a los usuarios a especificar valores positivos. Recuerde que las reglas de validacin de un campo no hacen referencia a otros campos de la tabla. Si la regla hace referencia a otros campos, se trata de una regla de validacin de registro. 4. Seleccione el cuadro de propiedad Texto de validacin y escriba un mensaje de validacin.

Este mensaje depende de la regla de validacin. Escriba un mensaje breve e intente explicar el error que ha cometido el usuario. Para continuar con el ejemplo del paso anterior, podra usar Escriba slo nmeros positivos como texto de validacin. 5. Guarde el trabajo.

NOTA Para obtener ms ejemplos de la validacin de campos, vea la seccin Referencia de validacin, ms adelante en este artculo. Validar los datos de un registro 1. 2. Repita los pasos 1 y 2 de la anterior seccin para abrir una tabla en la vista Diseo. En la ficha General, escriba una regla de validacin de registro en el cuadro de propiedad Regla de

validacin. O bien, Una regla de validacin de registro hace referencia a varios campos de tabla. Por ejemplo, la regla[FechaObligatoria]<=[FechaPedido]+30 hace referencia a dos campos de tabla, FechaObligatoria y FechaPedido, y asegura que los usuarios especifiquen fechas de envo que no sean posteriores a un plazo de 30 das a partir de la fecha del pedido. 1. En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta.

Access abre una nueva consulta en la vista Diseo y muestra el cuadro de dilogo Mostrar tabla.

2.

En el cuadro de dilogo Mostrar tabla, seleccione las tablas que desee usar en la consulta, haga clic

enAgregar para agregarlas a la consulta y, a continuacin, haga clic en Cerrar. Las tablas seleccionadas aparecen como ventanas en la seccin superior del diseador de consultas. 3. En cada tabla, haga doble clic en los campos que desee incluir en la consulta.

Arrastre los campos de la tabla y colquelos en una celda en blanco de la fila Campo situada en la parte inferior de la cuadrcula de diseo. Asegrese de agregar el campo que contiene la regla de validacin. 4. En la celda Criterios del campo que contiene la regla de validacin, escriba lo contrario de esa regla.

Por ejemplo, si usa ENTRE 100 Y 1000, escriba <100 O >1000. 5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Validar datos al escribirlos en un formulario La manera ms fcil y ms rpida de aplicar una regla de validacin a un formulario es agregar primero la regla al campo de tabla subyacente y, a continuacin, usar las herramientas de creacin de formulario automatizada incluidas en Access para crear un formulario. Por ejemplo, en la ficha Crear, en el grupo Formularios, puede optar por la creacin de un formulario simple, un formulario dividido, un formulario de varios elementos, etc. Cuando usa una de estas herramientas, los controles del formulario heredan las propiedades de tabla subyacentes, inclusive las reglas de validacin y el texto de validacin. Asimismo, puede aplicar una regla de validacin a un control de formulario abriendo el formulario en la vista Diseo y agregando una regla a la propiedad Regla de validacin y el texto del mensaje a la propiedad Texto de validacin del control. Se pueden agregar reglas de validacin a algunos controles de formulario, no a todos. La manera ms fcil de determinar si se puede agregar una regla de validacin a un control es abrir el formulario en la vista Diseo y seguir los pasos descritos en esta seccin. Recuerde que un control puede tener otra regla de validacin que el campo de tabla al que est enlazado. Cuando existe un conflicto entre las reglas de validacin, la regla definida para el campo de tabla tiene prioridad. Asimismo, recuerde que las reglas de controles y campos de tabla pueden cancelarse mutuamente y, por lo tanto, impedir que se introduzcan datos. Por ejemplo, supongamos que aplica la siguiente regla a un campo de fecha de una tabla: <#01/01/2007# Y, a continuacin, aplica esta regla al control de formulario enlazado al campo de tabla: >=#01/01/2007#

El campo de tabla requiere ahora valores anteriores al ao 2007, pero el control de formulario le obliga a especificar fechas posteriores a ese ao, por lo que no puede especificar ningn dato. Si lo intenta en estas condiciones, Access le indicar que especifique fechas anteriores y posteriores a las definidas por las reglas de validacin en conflicto, por lo que se encontrar en un callejn sin salida. En los siguientes pasos se explica cmo agregar reglas de validacin a los controles, cmo bloquear los controles y, por consiguiente, evitar que los usuarios cambien los datos. Crear una regla de validacin 1. En el panel de exploracin, haga clic con el botn secundario del mouse en el formulario que desee cambiar y, a continuacin, haga clic en Vista Diseo. 2. Haga clic con el botn secundario en el control que desee cambiar y, a continuacin, haga clic

en Propiedadespara abrir la hoja de propiedades del control. 3. Haga clic en la ficha Todas y, a continuacin, escriba la regla de validacin en el cuadro de

propiedad Regla de validacin. 4. 5. 1. Escriba un mensaje en el cuadro de propiedad Texto de validacin. Guarde los cambios. Siga los pasos 1 y 2 descritos en la seccin anterior para abrir la hoja de propiedades del control que

Bloquear un control desee bloquear. 2.

Haga clic en la ficha Todas, busque los cuadros de propiedad Activado y Bloqueado y, a continuacin,

siga uno de estos procedimientos: Para deshabilitar el control (de modo que aparezca atenuado y no est disponible para tener el

foco), establezca el valor de la propiedad Activado en No.

Para que se puedan leer los datos del control pero los usuarios no puedan cambiarlos,

establezca la propiedad Bloqueado en S. Si establece la propiedad Activado en No y la propiedad Bloqueado en S, el control no aparecer atenuado pero no podr tener el foco. Validar datos durante las operaciones de importacin Cuando se agregan reglas de validacin a una tabla y, a continuacin, se importan datos a esa tabla, Access aplica las reglas de validacin a los datos importados. La misma regla se aplica cuando se vincula a datos.

REGLA DE VALIDACIN <>0 >=0

TEXTO DE VALIDACIN Especifique un valor que no sea cero. El valor debe ser igual o mayor que cero.

O bien, Especifique un nmero positivo. 0 o >100 ENTRE 0 Y 1 El valor debe ser igual que cero o mayor que 100. Especifique un valor con un signo de porcentaje. (Se usa con los campos que almacenan los valores numricos como porcentajes). Especifique una fecha anterior a 2007. La fecha debe ser del ao 2007. La fecha de nacimiento no puede ser una fecha futura. Los datos del campo Apellidos deben escribirse en maysculas. Especifique la fecha de hoy. Escriba H para hombre o M para mujer. Escriba una direccin de correo electrnico vlida que termine en .com, .net u .org. Escriba una fecha obligatoria que no sea posterior a un plazo de 30 das a partir de la fecha de pedido. Escriba una fecha de finalizacin que sea igual o posterior a la fecha de inicio. FUNCIN Comprueba si hay valores opuestos. Se puede usar delante de cualquier operador de comparacin, salvo NO ES NULO. Comprueba si hay valores iguales a los elementos de una lista. El valor de comparacin debe ser una lista de valores separados por comas que EJEMPLO NO > 10 (es lo mismo que<=10).

<#01/01/2007# >=#01/01/2007# Y <#01/01/2008# <Fecha()

CompCadena(Mays([Apellidos]), [Apellidos],0) = 0 >=Int(Ahora()) HOM COMO "[A-Z]*@[A-Z].com" O "[A-Z]*@[A-Z].net" O "[AZ]*@[A-Z].org" [FechaObligatoria]<=[FechaPedido]+30

[FechaFin]>=[FechaInicio]

OPERADOR NO

EN

EN ("Tokio","Pars","Mosc")

aparece entre parntesis. ENTRE Comprueba si hay un intervalo de valores. Deben haber dos valores de comparacin (un valor alto y un valor bajo) y esos valores deben ir separados por el separador Y. Busca cadenas modelo coincidentes en los campos de tipo Texto y Memo. Obliga a los usuarios a escribir valores en el campo. Equivale a establecer el valor de la propiedad de campo Requerido en S. Sin embargo, cuando se habilita la propiedad Requerido y un usuario no especifica un valor, Access muestra un mensaje de error poco descriptivo. En general, el uso de las bases de datos resulta ms fcil si se utiliza NO ES NULO y se escribe un mensaje descriptivo en la propiedad Texto de validacin. Especifica que todos los datos que se especifiquen deben ser verdaderos o estar dentro de los lmites especificados. ENTRE 100 Y 1000 (es lo mismo que >=100 Y <=1000)

COMO

COMO "Geo*"

NO ES NULO

NO ES NULO

>= #01/01/2007# Y <=#06/03/2008# NOTA Se puede usar Ytambin para combinar reglas de validacin. Por ejemplo: NO "Reino Unido" Y COMO "R*". enero O febrero

Especifica que uno o varios datos pueden ser verdaderos. Menor que. Menor o igual que. Mayor que. Mayor o igual que.

< <= > >=

= <>

Igual que. Distinto de.

You might also like