10 consejos para trabajar con fechas en Access
- #1: Atajos para ingresar fechas
- #2: Eliminar la entrada de datos de fecha, a veces
- #3: Now() versus Date()
- #4: Auditar cambios agregando una fecha de edición
- #5: Cálculo de fechas julianas
- #6: Delimitadores de fecha
- #7: Uso de operadores de comparación para abarcar un rango de fechas
- #8: Uso de Format() para mostrar fechas
- #9: Ordenar por componentes de fecha
- #10: Devolver el primer o último día del mes
#1: Atajos para ingresar fechas
No siempre es necesario ingresar un valor de fecha literal. Access ofrece algunos atajos de teclado que son más rápidos y evitan errores tipográficos. Para ingresar la fecha actual, presiona [Ctrl] ; (punto y coma). Si quieres copiar una fecha del registro anterior, presiona [Ctrl] ' (comilla). Para ingresar la hora actual, presiona [Ctrl] : (dos puntos).
#2: Eliminar la entrada de datos de fecha, a veces
A veces una fecha es la fecha actual y otras veces no lo es. Cuando una fecha suele ser la fecha actual, puedes eliminar la entrada de cualquier valor en absoluto. Simplemente establece la propiedad Valor Predeterminado del campo en Now() o Date(). Cuando ingreses un nuevo registro, la propiedad ingresará la fecha (y hora) actual del sistema. Ni siquiera necesitas presionar [Ctrl] ;.
#3: Now() versus Date()
La función Now() devuelve la fecha y la hora actuales del sistema. Es un paquete completo: siempre obtienes ambas. Si solo necesitas la fecha actual y no la hora, utiliza la función Date() en su lugar. Por otro lado, si solo quieres la hora actual, utiliza la función Time(). No uses Now() a menos que realmente necesites almacenar tanto la fecha como la hora.
¿Por qué importa? Un valor que incluye tanto una fecha como una hora generalmente responde de manera diferente a las expresiones. Por ejemplo, podrías esperar que la siguiente expresión encuentre las fechas que caen después del 12 de diciembre de 2006:
WHERE campo > #12/12/2006#
Sin embargo, el conjunto de registros resultante incluirá las entradas del 12 de diciembre de 2006 si la entrada incluye un valor de hora. Por otro lado, Access no devolverá las fechas del 12 de diciembre de 2006 si la entrada almacena solo un valor de fecha.
#4: Auditar cambios agregando una fecha de edición
Si tienes varios usuarios que actualizan los datos, es posible que desees realizar un seguimiento de quién realiza los cambios. Puedes hacerlo agregando un procedimiento de evento simple en el evento Dirty de un formulario de entrada de datos:
Cómo evitar que los encabezados y pies de página se impriman sobre los datos en ExcelPrivate Sub Form_Dirty(Cancel As Integer) campo_edicion = Now() End Sub
donde campo_edicion representa el campo que almacena la última fecha de edición.
Access activa el evento Dirty del formulario cuando cambia el contenido del formulario. Esto sucede incluso si el usuario vuelve a ingresar la misma entrada. Si el usuario descubre el error, puede presionar [Esc] para cancelar el cambio. Sin embargo, el usuario debe presionarlo una segunda vez para eliminar la fecha de edición recién insertada antes de abandonar el registro. De lo contrario, Access guardará la fecha de edición.
#5: Cálculo de fechas julianas
Una fecha juliana identifica una fecha por su clasificación numérica desde el 1 de enero (en relación con el año actual). Esta clasificación nos dice cuántos días hay entre una fecha y el 1 de enero del mismo año. Por ejemplo, el 1 de enero de cualquier año es el día 1, el 1 de febrero de cualquier año es el día 32, y así sucesivamente. Los años bisiestos complican las cosas porque las fechas siguientes al 28 de febrero en un año bisiesto no son las mismas que en un año no bisiesto. Para calcular una fecha juliana, utiliza la siguiente expresión:
FechaJuliana = fecha - DateSerial(Año(fecha), 1, 1) + 1
donde fecha es la fecha o el campo de fecha/hora para el cual estás calculando un valor juliano. Esta expresión funciona para años bisiestos y no bisiestos.
#6: Delimitadores de fecha
Cuando incluyes valores numéricos en expresiones, no necesitas identificar el valor de ninguna manera. Sin embargo, debes identificar las fechas. El carácter correcto para usar al incluir un valor de fecha literal es el signo de número (#). Por ejemplo, la siguiente expresión no devuelve el número de días entre dos fechas:
TotalDias: 3/3/2007 - 2/1/2007
En cambio, devuelve -4.9825610363727E-04. Esto se debe a que Access evalúa las fechas matemáticamente: divide 3 por 3 entre 2007, resta 2, y así sucesivamente. El valor devuelto no es incorrecto, simplemente no refleja tus intenciones.
Cómo exportar los resultados de una consulta de Access a una página HTML optimizada para su lecturaAsegúrate de identificar los valores de fecha para que Access los maneje correctamente en las ecuaciones, de la siguiente manera:
TotalDias: #3/3/2007# - #2/1/2007#
Cuando identificas los valores como fechas mediante el delimitador #, Access devuelve el valor 30: la cantidad de días entre el 1 de febrero de 2007 y el 3 de marzo de 2007.
#7: Uso de operadores de comparación para abarcar un rango de fechas
Encontrar todos los registros con una fecha específica es fácil: simplemente ingresa la fecha en cuestión. Pero encontrar un subconjunto de fechas que caen entre dos fechas requerirá el uso de los siguientes operadores condicionales: <, <=, > y >=. Por ejemplo, la expresión SQL para localizar todos los valores de fecha anteriores a una fecha específica es:
WHERE campo_fecha < #fecha#
Si estás usando la cuadrícula de QBE, ingresarías la expresión más simple en la celda Criterios de campo_fecha:
< #fecha#
Tal vez necesites un subconjunto más pequeño, como todas las fechas anteriores a 2006 pero posteriores a 2002. En ese caso, especificarías ambas fechas de la siguiente manera:
WHERE campo_fecha > #31/12/2002# AND campo_fecha < #1/1/2006#
Alternativamente, utiliza la expresión más simple mediante la cuadrícula de QBE:
Cómo concatenar celdas de fecha y texto en Excel - Guía paso a paso> #31/12/2002# AND campo_fecha < #1/1/2006#
Ambas expresiones devuelven solo las fechas que caen en 2003, 2004 y 2005.
#8: Uso de Format() para mostrar fechas
La mayoría de las veces, querrás mostrar las fechas en un formato específico sin almacenar ese formato como parte de la fecha. La función Format() te permite mostrar componentes de fecha individuales y combinaciones sin afectar el valor de fecha almacenado. Para mostrar un componente individual, utiliza el código de formato adecuado. Por ejemplo, la siguiente expresión solo devolvería el día del mes como un número entero (del 1 al 31):
Format(campo_fecha, "d")
Si deseas un cero inicial, utiliza dd en lugar de d. La tabla a continuación contiene formatos de componentes individuales adicionales.
ddd | Devuelve el día de la semana como una abreviatura de tres letras: lun, mar, mié, etc. |
dddd Cómo evitar que el texto de la tabla desaparezca al mover filas en Word | Devuelve el nombre completo del día de la semana: lunes, martes, miércoles, etc. |
m | Devuelve el mes como un número entero, del 1 al 12. |
mmm | Devuelve el mes como una abreviatura de tres letras: ene, feb, etc. |
mmmm Cómo solucionar el problema de la sobrecarga de información y comunicación en tu organización | Devuelve el nombre completo del mes: enero, febrero, etc. |
yy | Devuelve los dos últimos dígitos del año: 06, 07, etc. |
yyyy | Devuelve un año de cuatro dígitos: 2006, 2007, etc. |
Cuando uses Format(), recuerda que el valor resultante es una cadena de texto. Utilizarás Format() para mostrar fechas, pero no lo utilices cuando necesites utilizar los resultados en ecuaciones matemáticas.
Cómo dividir un documento de Word en secciones numeradas#9: Ordenar por componentes de fecha
Ordenar por fechas es simple. Solo debes establecer la opción de ordenamiento del campo de fecha o agregar una cláusula ORDER BY a la declaración SQL. Sin embargo, Access utilizará la entrada de fecha completa. Si estás tratando de ordenar por un solo componente de fecha, como el día del mes, el mes o el año, utiliza las funciones Day(), Month() o Year(). Por ejemplo, si quisieras encontrar todas las fechas de enero, utilizarías la cláusula SQL WHERE de la siguiente forma:
WHERE Month(campo_fecha) = 1
Para ingresar la expresión equivalente en la cuadrícula de QBE, ingresarías la siguiente expresión como criterio de campo_fecha:
Month(campo_fecha) = 1
#10: Devolver el primer o último día del mes
Ninguna de las funciones de fecha de Access devuelve el primer o el último día de un mes específico o relativo. Para hacer ambas cosas, necesitarás expresiones personalizadas. Para devolver el primer y último día del mes actual y relativo, utiliza las siguientes expresiones:
Mes actual
PrimerDia = DateSerial(Year(fecha), Month(fecha), 1) UltimoDia = DateSerial(Year(fecha), Month(fecha) + 1, 0)
Mes anterior
PrimerDia = DateSerial(Year(fecha), Month(fecha) - 1, 1) UltimoDia = DateSerial(Year(fecha), Month(fecha), 0)
Mes siguiente
Cómo cambiar el nombre de un campo en una consulta de AccessPrimerDia = DateSerial(Year(fecha), Month(fecha) + 1, 1) UltimoDia = DateSerial(Year(fecha), Month(fecha) + 2, 0)
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a 10 consejos para trabajar con fechas en Access , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados