Help and Support
 

powered byLive Search

ACC: Dos funciones para calcular Edad de meses y años

Id. de artículo:100136
Última revisión:jueves, 18 de enero de 2007
Versión:2.3
Avanzado: Exige codificar experto, interoperabilidad y conocimientos de multiusuario.

En esta página

Resumen

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

Este artículo presupone que está familiarizado por usted con Visual Basic para Aplicaciones y crear aplicaciones de Microsoft Access que utilizan las herramientas de programación proporcionadas 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 denomina Access Basic en versiones 1.x de Microsoft Access 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 se puede ver 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: Consultas de ejemplo de Microsoft Access 97 Disponible en Centro de descargas

Volver al principio

Más información

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

NOTA: En el código siguiente de ejemplo, un subrayado (_) al final de una línea se utiliza como un carácter de continuación de línea. Quite el carácter de subrayado del final de la línea cuando escribe 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
				

Volver al principio

Probar el age() y las funciones AgeMonths()

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

COPETE: Los pasos siguientes le solicitan que cambie la fecha en su equipo. Asegúrese de que completa paso 6 para restablecer la fecha a la fecha actual.
1.Utilizando la herramienta Fecha y hora en Panel de control, anote la fecha actual y a continuación, establezca la fecha a 3 de junio de 1993.
2.Abra un módulo o cree un uno nuevo.
3.En el menú Ver, elija ventana Depuración (o ventana Inmediato en Microsoft Access 2.0 o anteriormente).
4. Suponga que 15 de noviembre de 1967 fue la fecha de nacimiento de su amigo y que el hoy es 3 de junio de 1993. Escriba lo siguiente en la ventana Depuración y presione ENTRAR:
? Age("11/15/67")
						
Nota (años) de que Microsoft Access responde con el valor 25.
5. Escriba lo siguiente y presione ENTRAR:
? AgeMonths("11/15/67")
						
Tenga en cuenta que Microsoft Access responde con el valor 6 para indicar que ha pasado seis meses desde el último cumpleaños de esta persona. Su amigo es antiguo 25 años y seis meses.
6.Utilizando la herramienta Fecha y hora en Panel de control, restablezca la fecha a la fecha actual a la que tuvo en cuenta en paso 1.

Volver al principio

Utilizar el age() y las funciones AgeMonths()

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

Volver al principio

Referencias

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

Volver al principio


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

Volver al principio

Palabras clave: 
kbhowto kbprogramming KB100136 KbMtes kbmt

Volver al principio

Traducción automáticaIMPORTANTE: 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. Si ve errores y desea ayudar con este esfuerzo, rellene la encuesta en la parte inferior de este artículo.
Haga clic aquí para ver el artículo original (en inglés): 100136 (http://support.microsoft.com/kb/100136/en-us/)

Volver al principio

Seleccione idioma

 

Other Support Options

  • Need More Help?
    Contact a Support professional by E-mail, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.