10 consejos para trabajar con fechas en Access

Índice de Contenido
  1. #1: Atajos para ingresar fechas
  2. #2: Eliminar la entrada de datos de fecha, a veces
  3. #3: Now() versus Date()
  4. #4: Auditar cambios agregando una fecha de edición
  5. #5: Cálculo de fechas julianas
  6. #6: Delimitadores de fecha
  7. #7: Uso de operadores de comparación para abarcar un rango de fechas
  8. #8: Uso de Format() para mostrar fechas
  9. #9: Ordenar por componentes de fecha
  10. #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 Excel
Private 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 lectura

Asegú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 Access
PrimerDia = 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

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.