Professional Documents
Culture Documents
www.jggomez.eu
Criterios, expresiones y
funciones frecuentes
www.jggomez.eu
INDICE
1.1
1.2
1.2.1
Introduccin ......................................................................................................................................... 4
Diseando los criterios: la fila de criterios................................................................................ 4
Combinando criterios (Operador Y) .................................................................................. 4
1.2.2
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
Expresiones con Rangos de Valores (>, <, >=, <=, <>, o Entre...Y). Ejemplos......14
1.3.8
1.3.9
1.3.10
1.3.11
1.3.12
2.1
Introduccin .......................................................................................................................................17
2.2
Uso de carcter comodn en cuadro de dilogos Buscar y Remplazar y Consultas de
seleccin y actualizacin (ANSI-89).........................................................................................................17
www.jggomez.eu
Pgina |2
2.3
Uso de carcter comodn en cuadro de dilogos Buscar y Remplazar y consultas de
seleccin y actualizacin en proyectos Access (ANSI-92). ...............................................................18
2.4
3
3.1
3.2
3.2.1
3.2.2
Sintaxis de la funcin.............................................................................................................20
3.3
3.3.1
3.3.2
Formatos de fecha y hora personalizados. Dia de la semana, del mes, semana
del ao, etc....................................................................................................................................................21
3.4
3.4.1
3.4.2
Ejemplo.......................................................................................................................................22
3.4.3
Ejemplo.......................................................................................................................................23
3.4.4
Ejemplo.......................................................................................................................................23
Ejemplo.......................................................................................................................................22
4.1
4.2
Introduccin .......................................................................................................................................24
4.3
4.4
4.5
4.6
4.7
4.7.1
Ejemplos generales.................................................................................................................28
4.7.2
4.7.3
Ejemplo I. Crear una suma continua en un formulario. DSuma( ) con una
condicin .......................................................................................................................................................29
4.7.4
5
5.1
5.1.1
5.1.2
ActiveX ........................................................................................................................................31
5.1.3
Matrices......................................................................................................................................31
5.1.4
5.1.5
Aplicacin ..................................................................................................................................31
Conversin .................................................................................................................................31
Base de datos............................................................................................................................31
www.jggomez.eu
Pgina |3
5.1.6
Fecha/Hora...............................................................................................................................31
5.1.7
5.1.8
5.1.9
5.1.10
Administracin de archivos.................................................................................................32
5.1.11
Financieras................................................................................................................................32
5.1.12
Inspeccin..................................................................................................................................33
5.1.13
Matemticas .............................................................................................................................33
5.1.14
5.1.15
Mensajes.....................................................................................................................................33
5.1.16
Varios ..........................................................................................................................................33
5.1.17
Texto............................................................................................................................................34
5.2
Bibliografa.........................................................................................................................................35
Pgina |4
www.jggomez.eu
Introduccin
Cuando se desea limitar los resultados de una consulta basada en los valores de un
campo, se usan los criterios de consulta. Un criterio de consulta es una expresin
que Access compara con los valores de los campos de consulta para determinar si se
va a incluir o no el registro que contiene cada uno de los valores. Por ejemplo, =
"Chicago" es una expresin que Access puede comparar con los valores de un
campo de texto de una consulta. Si el valor para ese criterio en un registro
determinado es "Chicago", Access incluye el registro en los resultados de la
consulta.
Un criterio es similar a una frmula. Es una cadena que puede estar formada por
referencias de campo, operadores y constantes. Los criterios de consulta tambin se
conocen como expresiones.
En la tabla siguiente, se muestran algunos ejemplos de criterios y se explica su
funcionamiento.
Criterio
Descripcin
>25 y <50
DifFecha("aaaa",
[FechaNacimiento],
Fecha()) > 30
Es Nulo
Los criterios pueden ser muy distintos entre s. Algunos criterios son sencillos y usan
operadores bsicos (como "<) y constantes (como "50"). Otros son complejos y usan
funciones ("como DifFecha") o referencias de campo (como "[FechaNacimiento]"). Este
tema proporciona varios ejemplos de criterios usados con frecuencia, agrupados por el tipo
de datos al que se aplican. Puede usar los ejemplos proporcionados en este tema como
punto de partida para especificar sus propios criterios.
1.2
1.2.1
Los criterios que especifique para los distintos campos de la fila Criterios se combinan
mediante el operador Y. Por ejemplo, podra especificar el criterio ="Chicago" para el
campo Ciudad y el criterio < AgregFecha("aaaa", -40, Fecha()) para el campo
FechaNacimiento. Los dos criterios se interpretan juntos de la siguiente manera:
www.jggomez.eu
Pgina |5
Pgina |6
www.jggomez.eu
1.3
Si los campos de los criterios no cambian pero los valores que desea s cambian con
frecuencia, podemos crear una consulta de parmetros. Una consulta de parmetros
solicita al usuario una entrada de datos y luego usa estos datos para crear los
criterios de consulta.
1.3.1
Los ejemplos siguientes son para el campo PasRegin de una consulta basada en una tabla
donde se almacenan datos de contacto. El criterio se especifica en la fila Criterios del campo
en la cuadrcula de diseo como hemos visto.
Presentamos a continuacin los siguientes ejemplos relacionados
Para incluir
Use este
Resultado de la consulta
registros que...
criterio
Coincidan exactamente
con un valor, como "China"
China
No coincidan con un
No "Mxico"
valor, como Mxico
No empiecen por la
cadena
especificada, No como U*
como U
Contengan la cadena
Como
especificada,
como
"*Corea*"
Corea
No contengan la cadena
No
como Devuelve los registros correspondientes a todos los pases
especificada,
como
"*Corea*"
o regiones que no contienen la cadena "Corea".
Corea
Acaben con la cadena
especificada,
como Como "*ina"
"ina"
Contengan
valores
Es Nulo
nulos (o que falten)
No acaben con la
No
cadena
especificada,
"*ina"
como "ina"
como
No contengan valores
No es Nulo
nulos
Contengan cadenas de "" (un par de Devuelve los registros en los que el campo tiene un valor en
longitud cero
comillas)
blanco (pero no nulo). Por ejemplo, los registros de ventas
Pgina |7
www.jggomez.eu
No contengan cadenas
No ""
de longitud cero
Contengan
valores
nulos o cadenas de "" O Es Nulo
longitud cero.
Ni vaco ni en blanco
Vayan a continuacin
de un valor, como
>= "Mxico"
Mxico, si se ordenan
alfabticamente
Estn incluidos en un
Como
intervalo
especfico,
D]*"
como de la A hasta la D
Coincidan con uno de
dos valores, tales como
Estados Unidos o Reino
Unido
"Estados
Unidos"
"Reino
Unido"
"[A-
En("Francia",
Contengan uno de los "China",
Devuelve los registros correspondientes a todos los pases
valores de una lista
"Alemania", o regiones especificados en la lista.
"Japn")
Contengan
ciertos
caracteres
en
una Der([PasRegi Devuelve los registros correspondientes a todos los pases
posicin especfica en el n], 1) = "y" o regiones cuyo nombre acaba con la letra "y".
valor del campo
Longitud([Pa
Satisfagan requisitos de
Devuelve los registros correspondientes a los pases o
sRegin]) >
longitud
regiones cuyo nombre tiene ms de 10 caracteres.
10
Coincidan
con
modelo especfico
www.jggomez.eu
Pgina |8
http://josenrique.es/2011/06/separar-nombre-y-apellidos-en-una-tabla-de-personas/
Caso, contamos con una tabla de personal en la que el nombre de la persona est codificado
en la forma Apellidos, Nombre para muchos informes e incluso para algunas consultas
preferiramos tener estos datos en dos campos: uno para el nombre y otro para los apellidos
cmo podemos conseguirlo?
La forma ms sencilla y rpida es utilizar una consulta de Access, pero previamente
tendremos que crear los campos nombre y apellidos desde el diseo de la tabla. Cuando
ya los tengamos separados podremos borrar el campo inicial u optar por dejarlo.
Una vez creados los campos necesitamos hacer una consulta de actualizacin de datos.
Aunque es recomendable hacer siempre una prueba primero con una consulta normal y
luego hacer la de actualizacin, as resulta mucho ms sencillo detectar y corregir errores.
Empecemos con la consulta normal, creamos una consulta basada en la tabla Personas y
sin seleccionar ningn campo tecleamos esto en la primera columna en el apartado Campo:
apellidos: Izq([nombre_completo];EnCad([nombre_completo];",")-1)
Que traducido sera: mustrame una columna y ponle de alias Apellidos, del campo
nombre_completo muestra el contenido desde el comienzo, o sea empezando por la
izquierda (Izq), hasta el lugar donde haya una coma, pero rstale un lugar para que la coma
no salga. Si no sabes de donde salen estas funciones y quieres aprender un poco ms sobre
ellas, aqu tienes una primera referencia.
www.jggomez.eu
Pgina |9
En la segunda columna escribo esta otra expresin, no la explico para no alargar demasiado
el artculo pero si tienes inters en aprender a utilizar las funciones te animo a intentar
traducirla tu mismo.
nombre:Der([nombre_completo];Longitud([nombre_completo])EnCad([nombre_completo];",")-1)
Ahora ejecutas la consulta y obtendrs una tabla de datos con dos columnas en las que el
nombre y el apellido se encuentran separados.
Por ltimo ejecuta la consulta, acepta en el cuadro de dialogo que aparece y vete a ver la
tabla Personas (no olvides guardar la consulta antes).
P g i n a | 10
www.jggomez.eu
1.3.3
Expresin
Resultado
"Londres"
>="N"
Como "S*"
Como "S*"
Der([IdPedido], 2)="99"
1.3.4
Expresin
Como "S*"
Como "S%"
Como
Para un campo Destinatario, pedidos enviados a clientes cuyo nombre finaliza
"*Importaciones" con la palabra "Importaciones" (ANSI-89)
Como
Para un campo Destinatario, pedidos enviados a clientes cuyo nombre finaliza
"%Importaciones" con la palabra "Importaciones" (ANSI-92)
Como "[A-D]*"
Como "*ar*"
Como "[A-D]%"
Como "%ar%"
Como "Casa
Dewe?"
P g i n a | 11
www.jggomez.eu
Como "Casa
Dewe_"
1.3.5
Expresin
Resultado
NombreCompleto: [Nombre] & " " & Muestra el valor de los campos Nombre y Apellidos,
[Apellidos]
separados por un espacio, en el campo NombreCompleto
Direccin2: [Ciudad] & " " &
[Regin] & " " & [CdigoPostal]
TipoCdigo: Der([CdigoVentaja], 2)
ProductoInicial:
Izq([NombreProducto], 1)
AreaCode: Medio([Telfono], 2, 3)
1.3.6
Para incluir
registros que...
Coincidan
exactamente con un #2/2/2006#
valor, como 2/2/2006
No coincidan con un
No #2/2/2006#
valor, como 2/2/2006
Contengan valores
anteriores a una fecha
< #2/2/2006#
determinada, como el
2/2/2006
Contengan valores
posteriores a una
fecha determinada,
como el 2/2/2006
> #2/2/2006#
Resultado de la consulta
Devuelve los registros de las transacciones que
tuvieron lugar el 2 de febrero de 2006. No olvide
rodear los valores de fechas con el carcter #,
para que Access pueda distinguir entre fechas y
cadenas de texto.
Devuelve los registros de las transacciones que
tuvieron lugar en una fecha distinta al 2 de
febrero de 2006.
Devuelve los registros de las transacciones que
tuvieron lugar antes del 2 de febrero de 2006.
www.jggomez.eu
Contengan valores
>#2/2/2006# Y
que estn dentro de
<#4/2/2006#
un intervalo de fechas
Contengan valores
<#2/2/2006# O
que estn fuera de un
>#4/2/2006#
intervalo
Contengan uno de dos
valores, como
#2/2/2006# O
2/2/2006 o
#3/2/2006#
3/2/2006
En (#1/2/2006#,
Contengan uno entre
#1/3/2006#,
varios valores
#1/4/2006#)
P g i n a | 12
Contengan la fecha de
Fecha()-1
ayer
Contengan la fecha en
Fecha()
curso
Contengan la fecha de
Fecha() + 1
maana
ParcFecha("ss",
Devuelve los registros de las transacciones que
Contengan fechas que [FechaVenta]) =
tuvieron lugar durante la semana en curso. Una
sean de la semana en ParcFecha("ss", Fecha())
semana empieza en domingo y termina en
curso
Y Ao( [FechaVenta]) =
sbado.
Ao(Fecha())
Ao([FechaVenta])* 53 +
Contengan fechas que
ParcFecha("ss",
sean de la semana
[FechaVenta]) =
anterior
Ao(Fecha())* 53 +
www.jggomez.eu
ParcFecha("ss", Fecha())
-1
Ao([FechaVenta])*
53+ParcFecha("ss",
Contengan fechas que
[FechaVenta]) =
sean de la semana
Ao(Fecha())*
prxima
53+ParcFecha("ss",
Fecha()) + 1
P g i n a | 13
Ao([FechaVenta]) =
Ao(Ahora())
Y Mes([FechaVenta]) =
Mes(Ahora())
Ao([FechaVenta])* 12 +
ParcFecha("m",
Devuelve los registros correspondientes al mes
[FechaVenta]) =
pasado. Si hoy es el 2/2/2006, ver los registros
Ao(Fecha())* 12 +
correspondientes a enero de 2006.
ParcFecha("m", Fecha())
-1
Ao([FechaVenta])* 12 +
ParcFecha("m",
Devuelve los registros correspondientes al mes
[FechaVenta]) =
prximo. Si hoy es el 2/2/2006, ver los
Ao(Fecha())* 12 +
registros correspondientes a marzo de 2006.
ParcFecha("m", Fecha())
+1
Ao([FechaVenta]) =
Contengan una fecha
Ao(Ahora()) Y
que sea del trimestre
ParcFecha("t", Fecha()) =
en curso
ParcFecha("t", Ahora())
Ao([FechaVenta])*4+Pa
Devuelve los registros correspondientes al
Contengan una fecha rcFecha("t",[FechaVenta]
trimestre anterior. Si hoy es el 2/2/2006, ver
que sea del trimestre ) =
los registros correspondientes al ltimo
anterior
Ao(Fecha())*4+ParcFec
trimestre de 2005.
ha("t",Fecha())- 1
Contengan una fecha
que sea del prximo
trimestre
Ao([FechaVenta])*4+Pa
rcFecha("t",[FechaVenta]
)=
Ao(Fecha())*4+ParcFec
ha("t",Fecha())+1
Ao([FechaVenta]) =
Ao(Fecha()) - 1
www.jggomez.eu
P g i n a | 14
Ao([FechaVenta]) =
Ao(Fecha()) + 1
< Fecha()
1.3.7
>= "Daz"
Entre #02.02.99# Y
#01.12.99#
Entre '2/2/1999' Y
'12/1/1999'
Negado 2
No es Nulo
< 1200.45
Negado
"EE.UU."
Es Nulo
Resultado
> 234
Expresin
> Fecha()
Expresiones con Rangos de Valores (>, <, >=, <=, <>, o Entre...Y).
Ejemplos
Expresin
1.3.8
Ao([FechaVenta]) =
Ao(Fecha()) Y
Mes([FechaVenta]) <=
Mes(Fecha()) Y
Da([FechaVenta]) <= Da
(Fecha())
Para un campo Apellidos, todos los nombres desde Daz hasta el final
del alfabeto
Negado T*
Negado T%
1.3.9
Para un campo Apellidos, los empleados cuyos nombres no empiezan por la letra
"T" (ANSI-89)
Para un campo Apellidos, los empleados cuyos nombres no empiezan por la letra
"T" (ANSI-92)
Expresin
En("Canad", "Reino
Unido")
En(Francia, Alemania,
Japn)
Resultado
Para un campo PasDestinatario, pedidos enviados a Canad o al Reino
Unido
Para un campo Pas, empleados que viven en Francia, Alemania o
Japn
www.jggomez.eu
P g i n a | 15
La siguiente tabla enumera ejemplos de expresiones que puede utilizar en los controles
calculados.
Expresin
Descripcin
Notas
Resultado
Para un campo Fax, pedidos de los clientes que no tienen una mquina de fax,
lo que se indica mediante un valor de cadena de longitud cero (cadena de
longitud cero: cadena que no contiene caracteres. Puede utilizar una cadena
de longitud cero para indicar que sabe que no hay ningn valor para un
campo. Para especificar una cadena de longitud cero, escriba dos comillas
dobles sin espacio entre ellas (" ").) en el campo Fax en lugar de un valor Nulo
(vaco)
www.jggomez.eu
Tipo de
campo
S/No
Datos
adjuntos
P g i n a | 16
En la fila Criterios, escriba Es Nulo para incluir los registros que no contengan datos
adjuntos. Escriba No es Nulo para incluir los registros que s contengan datos adjuntos.
Hay dos tipos bsicos de campos de bsqueda: los que buscan valores en un origen de
datos existente (mediante una clave externa) y los que se basan en una lista de valores
especificados al crearse el campo de bsqueda.
Los campos de bsqueda que se basan en una lista de valores especificados son del tipo
de datos Texto, y los criterios vlidos son los mismos que para otros campos de texto.
Los criterios que se pueden usar en un campo de bsqueda basado en valores de un
origen de datos existente dependen del tipo de datos de la clave externa, y no del tipo
de los datos que se buscan. Por ejemplo, suponga que tiene un campo de bsqueda que
muestra los nombres de empleados, pero usa una clave externa de tipo de datos
Bsqueda Nmero. Puesto que el campo almacena un nmero en lugar de texto, usted utilizar
criterios vlidos para nmeros, es decir, >2.
Si no conoce el tipo de datos de la clave externa, puede examinar la tabla de origen en
la vista Diseo para determinar los tipos de datos de los campos. Para ello:
1. Busque la tabla de origen en el panel de navegacin.
2. Abra la tabla en la vista Diseo. Para ello:
Haga clic en la tabla y, a continuacin, presione CTRL+ENTRAR.
Haga clic con el botn secundario del mouse en la tabla y, a
continuacin, haga clic en Vista Diseo.
3. El tipo de datos de cada campo se muestra en la columna Tipo de datos de la
cuadrcula de diseo de la tabla.
P g i n a | 17
www.jggomez.eu
Introduccin
Access admite dos juegos de caracteres comodn diferentes porque admite dos estndares
para el lenguaje de consulta estructurado: ANSI-89 y ANSI-92. Generalmente, se utilizan los
caracteres comodn ANSI-89 cuando se ejecutan consultas y operaciones de buscar y
reemplazar en bases de datos de Access: archivos .mdb y .accdb. Los caracteres comodn
ANSI-92 se utilizan cuando se ejecutan consultas en proyectos de Access (archivos de
Access conectados a bases de datos de Microsoft SQL Server). Los proyectos de Access
utilizan el estndar ANSI-92 porque SQL Server usa dicho estndar. En la tabla siguiente se
ofrece un listado de los mtodos o herramientas que puede utilizar para buscar y
reemplazar datos, y se indica el estndar ANSI utilizado con cada herramienta.
Mtodo o herramienta de bsqueda
Juego de caracteres
comodn utilizado
ANSI-89
ANSI-92
ANSI-89
ANSI-92
ANSI-92
2.2
Debemos utilizar este juego de caracteres comodn cuando use el cuadro de dilogo Buscar
y reemplazar para buscar y reemplazar datos en una base de datos o en un proyecto de
Access. Estos caracteres se utilizan tambin cuando se ejecutan consultas de seleccin y
actualizacin, pero no se utilizan en las consultas ejecutadas en un proyecto de Access1.
Carcter
Descripcin
Ejemplo
*
?
[]
!
Hace coincidir cualquier nmero de caracteres. Puede qu* encuentra qu, quin y
utilizar el asterisco (*) en cualquier sitio de una cadena de quizs pero no aquellos ni
caracteres.
aunque.
Hace coincidir cualquier carcter alfabtico individual.
Hace coincidir cualquier carcter individual incluido entre B[ao]l encuentra bala y
los corchetes.
bola pero no billete.
Hace coincidir cualquier carcter que no se encuentre r[!oc]a encuentra risa y
entre los corchetes.
rema pero no roca ni rosa.
P g i n a | 18
www.jggomez.eu
2.3
Es el caso menos frecuente para el usuario general y se usa cuando ejecutamos consultas
de seleccin y actualizacin en proyectos de Access (archivos .adp)
Carcter
Descripcin
Ejemplo
Hace coincidir cualquier nmero de caracteres. Puede qu% encuentra qu, quin y
utilizarse como el primero o el ltimo carcter de la cadena quizs pero no aquellos ni
de caracteres.
aunque.
%
_
Hace coincidir cualquier carcter individual incluido entre B[ao]l encuentra bala y bola
los corchetes.
pero no billete.
[]
Hace coincidir cualquier carcter que no se encuentre entre r[^oc]a encuentra risa y
los corchetes.
rema pero no roca ni rosa.
^
-
2.4
Cuando se disea una tabla, se define un tipo de datos para cada campo de la tabla. Por
ejemplo, se define el tipo de datos Fecha/Hora para los campos que contienen informacin
de fecha. En esta tabla se ofrece un listado de los tipos de datos que puede buscar mediante
caracteres comodn. Recuerde que, en algunos casos, puede utilizar caracteres comodn en
el cuadro de dilogo Buscar y reemplazar pero no en las consultas, y viceversa.
Tipo de datos
Usar en ...
Texto
Fecha/Hora
Memo
Nmero
Moneda
Autonumrico
Objeto OLE
Ninguno.
S/No
Hipervnculo
Asistente
bsquedas
para
Consultas, pero no es necesario. Vea las notas al final de esta seccin para
obtener ms informacin.
Cuadro de dilogo Buscar y reemplazar, consultas
Segn el tipo de datos del campo de origen.
www.jggomez.eu
P g i n a | 19
Cmo puedo determinar una fecha que es 50 das laborables despus de otra
fecha? Qu pasa si quiero excluir los das festivos?
Cmo puedo determinar el nmero de das laborables entre dos fechas?
Tengo 10.000 fechas diferentes correspondientes a los tickets de ventas del
presente ejercicio, Cmo puedo escribir frmula para extraer de cada fecha el
mes, ao, da del mes y da de la semana?
Para cada contrato laboral de los trabajadores eventuales de la temporada veranootoo tengo la fecha de alta y la de baja, Cmo puedo determinar el nmero de
meses en que cada trabajador ha estado contratado?
Cul es la antigedad de mi inventario de productos?
Cmo puedo determinar qu da es 25 das laborables despus de la fecha actual
(incluyendo festivos)?
Cmo puedo determinar qu da es 21 das laborables despus de la fecha actual
incluyendo festivos pero excluyendo la navidad y ao nuevo?
Determinar la edad exacto en aos de nuestros empleados
Cuntos das (incluyendo festivos) hay entre el 10-07-2011 y 15-08-2012?
Cuntos das (incluyendo festivos pero excluyendo navidad y fin de aos) hay
entre el 10 de julio de 2011 y 15 de agosto de 2012?
En cualquiera de los casos comentados necesitamos trabajar con las funciones fecha y
hora.
P g i n a | 20
www.jggomez.eu
3.2
3.2.1
La funcin DifFecha nos permite calcular el intervalo de tiempo transcurrido entre dos
fechas. Este intervalo de tiempo pueden ser das, meses, semanas, aos, etc. Lo importante
a la hora de utilizar la funcin DifFecha es indicar el intervalo adecuado.
3.2.2 Sintaxis de la funcin
DifFecha (intervalo;[fecha 1];[fecha 2];primer da semana; primera semana)
La sintaxis de la funcin tiene 5 argumentos: los tres primeros son obligatorios y los dos
ltimos son opcionales.
Argumento
Descripcin
intervalo
fecha1, fecha2
Requerido. Variant (Date). Las dos fechas que se desean utilizar en el clculo.
primerdasemana
primerasemanaao
n minutos
ARGUMENTOS OPCIONALES:
s segundos
3.3
3.3.1
En Access, los valores de fecha y hora pueden aparecer en diversos formatos, como un
formato europeo (28.11.2006 28-11-2006), un formato surasitico (28/11/2006) o el
formato de EE.UU. (11/28/2006).
www.jggomez.eu
P g i n a | 21
La parte correspondiente al entero del valor, situada a la izquierda del separador decimal,
representa la fecha.
Podremos emplear formatos personalizados para los campos de fecha y hora. Recogemos
a continuacin los mas frecuentes
Carcter
Descripcin
d o dd
Muestra el da del mes con uno o dos dgitos. Para un solo dgito, use un solo
marcador de posicin; para dos dgitos, use dos marcadores de posicin.
dddd
ddd
ddddd
dddddd
s
m o mm
mmm
mmmm
t
aa
P g i n a | 22
www.jggomez.eu
aaaa
h o hh
Controles donde Access coloca el separador para las horas, los minutos y los
segundos. Use el separador definido en la configuracin regional de Windows. Para
obtener informacin sobre esta configuracin, vea la siguiente seccin Cmo la
configuracin regional de Windows afecta a las fechas y horas.
Separador
de hora
n o nn
s o ss
hhhh
3.4
Ejemplo
Expresin
=Fecha()
=Formato(Ahora(), "ss")
=ParcFecha("yyyy", [FechaPedido])
=SumFecha("a", -10,
[FechaPrometida])
=DifFecha("d", [FechaOrden],
[FechaEnviado])
3.4.2
#02.02.00#
Ejemplo
Expresin
'02.02.00'
Fecha()
Ao([FechaPedido]) = 1999
ParcFecha("t", [PedidoFecha]) = 4
Descripcin
Utiliza la funcin Fecha para mostrar la fecha actual en el
formato mm-dd-aaaa, donde mm es el mes (del 1 al 12), dd
es el da (del 1 al 31) y aaaa es el ao (de 1980 a 2099).
Utiliza la funcin Formato (Format) para presentar el
nmero de la semana del ao que representa la fecha actual,
donde ss es 1 a 53.
Utiliza la funcin ParcFecha (DatePart) para presentar los
cuatro dgitos del ao del valor del campo FechaPedido.
Utiliza la funcin SumFecha (DateDif) para presentar una
fecha que sea 10 das antes del valor del campo
FechaPrometida.
Utiliza la funcin DifFecha para presentar la varianza en
das entre los valores de los campos FechaOrden y
FechaEnviado.
Resultado
P g i n a | 23
www.jggomez.eu
SerieFecha(Ao ([FechaPedido]),
Mes([FechaPedido]) + 1, 1) - 1
Ao([FechaPedido])=Ao(Ahora())
Y Mes([FechaPedido])=Mes(Ahora())
3.4.3
Ejemplo
Por ejemplo, tenemos una tabla de pedidos, y queremos saber cuntos das han transcurrido
entre la fecha de pedido y la fecha de entrega. Creamos una consulta en la que utilizamos la
funcin DifFecha con la siguiente expresin:
Das transcurridos:DifFecha("d";[Fecha_Pedido];[Fecha_Entrega])
Si nos interesa saber las semanas transcurridas entre ambas fechas indicaramos como
intervalo ww, de esta forma contamos el nmero de domingos que hay entre la fecha de
pedido y la fecha de entrega:
Semanas transcurridas:DifFecha("ww";[Fecha_Pedido];[Fecha_Entrega])
Obtenemos:
Ejemplo
Expresin
Resultado
P g i n a | 24
www.jggomez.eu
Introduccin
De forma sinttica, las funciones de agregados son expresiones que realizan un recuento,
suman y buscan valores de manera selectiva mediante funciones de agregado de dominio.
Es interesante destacar que el valor nulo no equivale al valor 0, las funciones de resumen
no consideran los valores nulos mientras que consideran el valor 0 como un valor, por lo
tanto en el promedio y la desviacin estndar los resultados no sern los mismos con
valores 0 que con valores nulo.
Destacar adems que los valores a sumar, contar o determinar y el campo condicin no
necesariamente tiene que estar en el origen de datos en el que se basa la consulta, el
formulario o informe. Por ejemplo, podemos mostrar el nmero de pedidos de la tabla
Pedidos en un control calculado en un formulario basado en la tabla Productos.
NombredelaFuncion("Campodelatabla";"Tabla";"Condicion")
Ejemplo disponemos de una tabla que vamos a llamar Clientes con los siguientes campos:
IdCliente (Autonumrico)
NombreCliente (Texto)
DNICliente (Texto)
FechaNacimiento (Fecha/Hora)
Edad (Numero)
Para probarlo creamos un formulario independiente, con un simple cuadro de texto, que
vamos a llamar txtResultados, y un botn de comando. Vamos a comenzar por intentar
averiguar cuantos registros tenemos en nuestra tabla y para ello vamos a usar la funcin
agregada de dominio DCount.
DCount("CampodelaTabla","Tabla","Condicion"), pero para este primer ejemplo no
vamos a poner ninguna condicin con lo que nos quedara as:
DCount("IdCliente","Clientes").
P g i n a | 25
www.jggomez.eu
Como todas son muy parecidas, ahora vamos a ver DSum, vamos a sumar las edades de
todos nuestros clientes, para ello en el botn de comando borramos lo que tenamos y
ponemos:
Me.txtResultados = DSum("Edad","Clientes")
Vamos a obtener el promedio de edad de nuestros clientes, para ello divideremos la suma
de sus edades entre el nmero de clientes
Me.txtResultados = DSum("Edad","Clientes") / DCount("IdCliente","Clientes").
Funciona. Pero Access incluye una funcin para calcular el promedio, se trata de Avg.
Probamos ahora poniendo
Me.txtResultados = DAvg("Edad","Clientes")
Ahora vamos a descubrir que edad es la ms alta de todas las de la tabla. Utilizaremos DMax
Me.txtResultados = DMax("Edad","Clientes")
Me.txtResultados = DMin("Edad","Clientes").
Vamos a introducir condiciones, y a conocer DLookUp. Esta funcin nos sirve para
encontrar un campo en una tabla. El objetivo va a ser conocer el nombre del cliente que
tengamos en la tabla cuyo IdCliente sea igual a 3.
La condicin sera "IdCliente = 3"
Por tanto como lo que buscamos es el nombre del cliente quedara as:
DLookUp("NombreCliente","Clientes","IdCliente = 3")
4.2
Funcin DSuma ( )
Requerido. Expresin que identifica el campo numrico cuyos valores desea calcular.
Puede ser una expresin de cadena que identifique un campo de una tabla o de una
consulta, o puede ser una expresin que realice un clculo sobre los datos de ese
campo. En expr, puede incluir el nombre de un campo de una tabla, un control de un
formulario, una constante o una funcin. Si expr incluye una funcin, sta puede estar
integrada o puede ser definida por el usuario, pero no puede ser otra funcin de
agregado de dominio ni una funcin de agregado de SQL.
www.jggomez.eu
dominio
criterios
P g i n a | 26
Opcional. Expresin de cadena utilizada para restringir el intervalo de los datos en los
que se ejecuta la funcin DSuma. Por ejemplo, criterios con frecuencia es equivalente
a la clusula WHERE en una expresin SQL, sin la palabra WHERE. Si se omite
criterios, la funcin DSuma evala expr para todo el dominio. Cualquier campo que
est incluido en criterios tambin debe ser un campo de dominio; en caso contrario,
la funcin DSuma devuelve un valor Null.
En el caso de que estemos trabajando con campos alfanumricos, tenemos que tener en
cuenta que el parmetro de condicin debe estar entrecomillado.
Es decir, supongamos la funcin:
Funcin DlookUp ( )
DlookUp es una funcin predefinida de Access, como una frmula a la que se le pasan ciertos
datos y ella se encarga de hacer los clculos necesarios y devolvernos el resultado
ahorrndonos de esta manera un montn de pasos, es decir, en un contexto sencillo sera
como decirle Bscame el campo X en la tabla Z que coincida con el criterio Y.
As supongamos que en una tabla de artculos disponemos de tres campos Cdigo,
Descripcin e Importe y en alguna parte de nuestra base de datos queremos buscar el
precio de un artculo concreto cuyo cdigo es el 002568, para esto sirve.
DlookUp (Importe, T_Articulos, Codigo= 002568), la funcin es as de sencilla
Cmo y Donde se usa?
Como buena funcin de dominio que es, la podemos usar en varios apartados de nuestra
base de datos como en un cuadro de texto calculado, una consulta, o con cdigo VBA.
Ejemplo en un formulario
Tenemos un formulario en blanco, en este caso sin orgenes de datos con dos campos de
texto, uno para poner el cdigo y el otro para que lo calcule con nuestro DlookUp, aqu
tenemos la vista diseo del mismo.
www.jggomez.eu
P g i n a | 27
Como vemos el ltimo dato parmetro del criterio lo que hace es leer lo que aparece en el
primer cuadro de texto. Aunque el ejemplo es muy simple, si cambiamos el cdigo del
primer cuadro de texto no buscar automticamente su importe, en este caso he aadido, a
su evento Despus de actualizar, la siguiente lnea mediante VBA Me.Recalc para que
vuelva a recalcular los cambios:
P g i n a | 28
www.jggomez.eu
4.4
Funcin DCont ( )
La funcin DCont no cuenta los registros que contengan valores Null en el campo que expr
hace referencia a no ser que expr sea el carcter comodn asterisco (*). Si usa un asterisco,
la funcin DCont calcula el nmero total de registros, incluyendo aquellos que contienen
campos Null.
=DCuenta("[Retirados]","[Activos]","[Retira Usa la funcin DCuenta para devolver el
dos]=S")
nmero de valores S en el campo Retirados
(campo de tipo S/No) de la tabla
denominada Activos
4.5
Funcin DBsq ( )
4.6
Podemos usar las funciones DMn (DMin) y DMx (DMax) para calcular los valores mnimo
y mximo de un grupo de registros especificado (un dominio). Por ejemplo, podemos usar
las funciones DMn y DMx en los controles calculados de un informe para mostrar el
menor y el mayor de los importes de pedido para un cliente particular. O bien, puede utilizar
la funcin DMn en una expresin de consulta para mostrar todos los pedidos con un
descuento mayor que el descuento mnimo posible.
4.7
4.7.1
Ejemplos generales
Expresin
=Dbsq("[NombreContacto]",
"[Proveedores]", "[IdProveedor] =
Forms![IdProveedor]")
Descripcin
www.jggomez.eu
=Dbsq("[NombreContacto]", "[
Proveedores]", "[IdProveedor] =
Forms![Nuevos
Proveedores]![IdProveedor]")
P g i n a | 29
4.7.2
Expresin
>
(DDesvEst("[Carga]", Para un campo Freight, pedidos para los que el cargo
"Pedidos") + DProm("[Carga]", por coste queda por encima de la media ms la
"Pedidos"))
desviacin estndar del cargo por coste
4.7.3
http://www.gratiszona.com/trucos/trucos-access/crear-suma-continua-formulario.htm
Para crear una suma continua en un formulario, la tabla sobre la que est basada debe
contener al menos un campo autonumerico .
El siguiente ejemplo utiliza una tabla que contiene tres campos: Contador (Campo
Autonumerico), Cantidad (Campo numerico) y Total (Campo Numerico). La tabla se llama
Prueba.
Crear un formulario nuevo basado en la tabla Prueba.
Formulario: Formulario1
OrigendelRegistro: Prueba
Cuadro de Texto: Contador
Origen del Control: Contador
Cuadro de Texto: Cantidad
Origen del Control: Cantidad
Cuadro de Texto: Total
Dsum('[Cantidad]';'Prueba';'[Contador]<=Forms![Formulario1]![Contador]')
La funcion Dsum calcula la suma del campo Cantidad en todos los registros que tengan el
contador menor o igual que el registro activo. Esta es la razon por la que se necesita un
campo autonumerico.
4.7.4
http://www.lawebdelprogramador.com/foros/Access/1128884-funcion_DSum.html
Contamos con una base de datos llamada PETICIONES y en ella en ella hay los siguientes
campos (entre otros):
www.jggomez.eu
- Producto (texto)
- Dpto (numrico entero)
- Cantidad (numrico entero)
- FechaPeticion (fecha corta)
- FechaCancelacion (fecha corta)
P g i n a | 30
Contamos a su vez con un formulario "FRM TOTALES" con los siguientes datos:
- un cuadro de texto independiente "FechaDesde"
- un cuadro de texto independiente "FechaHasta"
- un cuadro de texto independiente "Total1"
- un cuadro de texto independiente "Total2"
Pretendemos que una vez introducida las "FechaDesde" y "FechaHast", en los siguientes
campos muestre el total (SUMA) de los datos solicitados. Es decir, debe mostrar en el campo
"Total1" el total de lo solicitado en "Producto" para el "Dpto" X en que la "FechaCancelacion"
sea NULL (que no exista fecha) y que figure la "FechaPeticion" entre las indicadas en el
formulario ("FechaDesde" y "FechaHasta"),
La propuesta de solucin para este caso sera:
= DSum("Cantidad", "PETICIONES", "Producto = 'FIJOS' AND Dpto = 8442 AND
FechaCancelacion = Null AND FechaPeticion Between # " & FechaDesde & " # AND # " &
FechaHasta & " # ")
www.jggomez.eu
Anexos y bibliografa
5.1
ActiveX
CreateObject (funcin)
GetObject (funcin)
5.1.2
Aplicacin
Comando (funcin)
Ejecutar (funcin)
5.1.3
Matrices
Array (funcin)
Filter (funcin)
Join (funcin)
LBound (funcin)
Split (funcin)
UBound (funcin)
5.1.4
Conversin
Asc (funcin)
Car (funcin)
Da (funcin)
EuroConvert (funcin)
FormatoMoneda (funcin)
FormatoFechaHora (funcin)
FormatoNmero (funcin)
FormatoPorcentaje (funcin)
GUIDFromString (funcin)
Hex (funcin)
Nz (funcin)
Oct (funcin)
Str (funcin)
StringFromGUID (funcin)
Funciones de conversin de tipo
Val (funcin)
5.1.5
Base de datos
DDE (funcin)
DDEIniciar (funcin)
DDEPedido (funcin)
DDEEnviar (funcin)
Eval (funcin)
Particin (funcin)
5.1.6
Fecha/Hora
Fecha (funcin)
AgregFecha (funcin)
DifFecha (funcin)
ParcFecha (funcin)
SerieFecha (funcin)
P g i n a | 31
www.jggomez.eu
ValorFecha (funcin)
Hora (funcin)
Minuto (funcin)
Mes (funcin)
NombreMes (funcin)
Ahora (funcin)
Segundo (funcin)
HoraActual (funcin)
Cronmetro (funcin)
SerieHora (funcin)
ValorHora (funcin)
DaSemana (funcin)
NombreDaDeLaSemana (funcin)
Ao (funcin)
5.1.7
Agregado de dominio
DProm (funcin)
DCuenta (funcin)
DPrim, Dltimo (funciones)
DBsq (funcin)
DMn, DMx (funciones)
DDesvEst, DDesvEstP (funciones)
DSuma (funcin)
DVar, DVarP (funciones)
5.1.8
Tratamiento de errores
CVErr (funcin)
Error (funcin)
5.1.9
EOF (funcin)
FreeFile (funcin)
Entrada (funcin)
Loc (funcin)
LOF (funcin)
Seek (funcin)
5.1.10 Administracin de archivos
DirAct (funcin)
Dir (funcin)
FileAttr (funcin)
HoraFechArch (funcin)
FileLen (funcin)
ObtenerAtributo (funcin)
5.1.11 Financieras
Amortiz (funcin)
VF (funcin)
Inters (funcin)
TIR (funcin)
TIRM (funcin)
NPer (funcin)
P g i n a | 32
www.jggomez.eu
VNA (funcin)
Pago (funcin)
PPago (funcin)
VA (funcin)
Tasa (funcin)
SLN (funcin)
SYD (funcin)
5.1.12 Inspeccin
Entorno (funcin)
ObtenerValores (funcin)
ObtenerValor (funcin)
IsArray (funcin)
EsFecha (funcin)
EsVaco (funcin)
EsError (funcin)
IsMissing (funcin)
EsNulo (funcin)
EsNum (funcin)
IsObject (funcin)
TypeName (funcin)
VarType (funcin)
5.1.13 Matemticas
Abs (funcin)
ArcTg (funcin)
Cos (funcin)
Exp (funcin)
Int, Fix (funciones)
Ln (funcin)
NmAleat (funcin)
Redondear (funcin)
Signo (funcin)
Sen (funcin)
Raz2 (funcin)
Tan (funcin)
5.1.14 Mensajes
CuadroEntr (funcin)
CuadroMsj (funcin)
5.1.15 Varios
CallByName (funcin)
IMEStatus (funcin)
MacID (funcin)
MacScript (funcin)
QBColor (funcin)
RGB (funcin)
Spc (funcin)
Tab (funcin)
P g i n a | 33
www.jggomez.eu
Elegir (funcin)
DoEvents (funcin)
Silnm (funcin)
Conmutador (funcin)
5.1.17 Texto
Formato (funcin)
EnCad (funcin)
InStrRev (funcin)
Mins (funcin)
Izq. (funcin)
Longitud (funcin)
RecortarIzq, RecortarDer y Recortar (funciones)
Medio (funcin)
Reemplazar (funcin)
Der (funcin)
Espacio (funcin)
CompCadena (funcin)
ConvCadena (funcin)
Cadena (funcin)
StrReverse (funcin)
Mays (funcin)
P g i n a | 34
www.jggomez.eu
5.2
Bibliografa
P g i n a | 35
http://office.microsoft.com/es-es/access-help/ejemplos-de-criterios-de-consulta-HA010341674.aspx
http://office.microsoft.com/es-es/access-help/informacion-de-referencia-sobre-los-caracteres-comodin-en-accessHA010076601.aspx?CTT=5&origin=HA010341674
http://5incoaprendices.blogspot.com.es/2008/07/funcin-diffecha-en-access.html
http://office.microsoft.com/es-es/access-help/agregar-y-personalizar-formatos-de-fecha-y-hora-HA010078108.aspx
http://accessjuancots.blogspot.com.es/2008/01/capitulo-4-funciones-agregadas-de.html
http://www.accessyexcel.com/donde-y-como-utilizar-la-funcion-de-dominio-dlookup/
http://office.microsoft.com/es-es/access-help/funciones-dmin-dmin-y-dmax-dmax-HA001228826.aspx
http://www.monografias.com/trabajos34/microsoft-access/microsoft-access4.shtml
http://josenrique.es/2011/06/separar-nombre-y-apellidos-en-una-tabla-de-personas/
http://josenrique.es/2011/06/funciones-de-texto-o-cadena-en-access/
http://www.lawebdelprogramador.com/foros/Access/1128884-funcion_DSum.html