Id. de artículo: 100136 - Última revisión: jueves, 18 de enero de 2007 - Versión: 2.3

ACC: Dos funciones para calcular la antigüedad en meses y años

Avanzado: Requiere codificación experto, interoperabilidad, conocimientos y multiusuario.

En esta página

Expandir todo | Contraer todo

Resumen

En este artículo se muestra cómo crear una función para calcular la edad de una persona o una cosa basándose en una fecha determinada.

Este artículo se supone que está familiarizado con Visual Basic para aplicaciones y con la creación de aplicaciones de Microsoft Access mediante las herramientas de programación suministradas con Microsoft Access. Para obtener más información acerca de Visual Basic para Aplicaciones, consulte su versión del manual "Creación de aplicaciones con Microsoft Access".

Nota : Visual Basic para aplicaciones se llama a Access Basic en Microsoft Access versiones 1.x y 2.0. Para obtener más información acerca de Access Basic, consulte el manual "Introduction to Programming" de la versión 1.x de Microsoft Access o el manual "Creación de aplicaciones" de la versión 2.0

Nota : una demostración de la técnica utilizada en este artículo puede verse en el archivo de ejemplo Qrysmp97.exe. Para obtener información acerca de cómo obtener este archivo de ejemplo, consulte el siguiente artículo en Microsoft Knowledge Base:
182568  (http://support.microsoft.com/kb/182568/EN-US/ ) ACC97: Microsoft Access 97 consultas de ejemplo disponible en el Centro de descarga

Más información

Escriba el siguiente código en un módulo:

Nota : en el siguiente ejemplo de código se utiliza un subrayado (_) al final de una línea como un carácter de continuación de línea. Quite el carácter de subrayado del final de la línea cuando escriba este código en Access Basic.
   '==========================================================
   ' General Declaration
   '==========================================================

    Option Explicit

   '*************************************************************
   ' FUNCTION NAME: Age()
   '
   ' PURPOSE:
   '    Calculates age in years from a given date to today's date.
   '
   ' INPUT PARAMETERS:
   '    StartDate: The beginning date (for example, a birth date).
   '
   ' RETURN
   '    Age in years.
   '*************************************************************

    Function Age (varBirthDate As Variant) As Integer
       Dim varAge As Variant

      If IsNull(varBirthdate) then Age = 0: Exit Function

      varAge = DateDiff("yyyy", varBirthDate, Now)
      If Date < DateSerial(Year(Now), Month(varBirthDate), _
                           Day(varBirthDate)) Then
         varAge = varAge - 1
      End If
      Age = CInt(varAge)
    End Function

    '*************************************************************
    ' FUNCTION NAME: AgeMonths()
    '
    ' PURPOSE:
    '  Compliments the Age() function by calculating the number of months
    '  that have expired since the last month supplied by the given date.
    '  If the given date is a birthday, the function returns the number of
    '    months since the last birthday.
    '
    ' INPUT PARAMETERS:
    '    StartDate: The beginning date (for example, a birthday).
    '
    ' RETURN
    '    Months since the last birthday.
    '*************************************************************
    Function AgeMonths(ByVal StartDate As String) As Integer
      Dim tAge As Double
      tAge = (DateDiff("m", StartDate, Now))
      If (DatePart("d", StartDate) > DatePart("d", Now)) Then
          tAge = tAge - 1
      End If

      If tAge < 0 Then
         tAge = tAge + 1
      End If

      AgeMonths = CInt(tAge Mod 12)

    End Function
				

Probar la Age() y AgeMonths() funciones

Para probar las funciones Age() y AgeMonths(), siga estos pasos.

importante : los siguientes pasos le pedirá que cambie la fecha en el equipo. Asegúrese de que complete el paso 6 para restablecer la fecha en la fecha actual.
  1. Mediante la herramienta fecha y hora en el panel de control, anote la fecha actual y, a continuación, establecer la fecha 3 de junio de 1993.
  2. Abra un módulo o cree uno nuevo.
  3. En el menú Ver, haga clic en ventana depuración (o ventana Inmediato en Microsoft Access 2.0 o anterior).
  4. Suponga fecha de nacimiento de su amigo fue 15 de noviembre de 1967 y hoy es 3 de junio de 1993. Escriba lo siguiente en la ventana depuración y presione ENTRAR:
    ? Age("11/15/67")
    						
    nota que Microsoft Access responde con el valor 25 (años).
  5. Escriba lo siguiente y presione ENTRAR:
    ? AgeMonths("11/15/67")
    						
    nota que Microsoft Access responde con el valor 6, que indica que han pasado seis meses desde el último cumpleaños de esta persona. Su amigo es 25 años y seis meses de antigüedad.
  6. Mediante la herramienta fecha y hora en el panel de control, restablecer la fecha en la fecha actual que anotó en el paso 1.

Mediante el Age() y AgeMonths() funciones

El siguiente procedimiento explica cómo marcar pedidos antiguos colocando el valor de edad en un nuevo control:
  1. En la base de datos de ejemplo Neptuno.mdb (o Neptuno.mdb en Microsoft Access 2.0 o anterior) escriba las funciones Age() y AgeMonth() en un módulo nuevo.
  2. Abra el formulario Pedidos en la vista Diseño y agregue un control de cuadro de texto independiente.
  3. Escriba lo siguiente en la propiedad OrigenDelControl del control de cuadro de texto nuevo:
    =Age([OrderDate]) & " ys " & AgeMonths([OrderDate]) & " mo"
    						
    Nota: en las versiones 1.x y 2.0, hay un espacio en el nombre del campo FechaPedido.
  4. Vea el formulario en la vista Formulario. Observe que la antigüedad del pedido se muestra en el nuevo control de cuadro de texto.

Referencias

Para obtener más información acerca de las diferencias de fecha, buscar el índice de la Ayuda "DateDiff" o pregunte el Ayudante de Office de Microsoft Access 97.

La información de este artículo se refiere a:
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbhowto kbprogramming KB100136 KbMtes
Traducción automáticaTraducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 100136  (http://support.microsoft.com/kb/100136/en-us/ )
Retired KB ArticleRenuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.
 

Seleccione idioma