Come creare due funzioni per calcolare l'età in mesi e anni in Access
Avanzate: richiede competenze esperte di codifica, interoperabilità e multiutente.
Questo articolo si applica a un database di Microsoft Office Access (con estensione accdb e .mdb) e a un progetto di Microsoft Access (con estensione apd).
Riepilogo
Questo articolo illustra come creare due funzioni che è possibile usare per calcolare l'età di una persona o di una cosa in base a una data specificata.
Nota
È possibile visualizzare una dimostrazione della tecnica usata in questo articolo nel file di esempio Qrysmp00.exe.
Ulteriori informazioni
Creazione delle funzioni
Digitare o incollare il codice seguente in un modulo:
'==========================================================
' General Declaration
'==========================================================
Option Explicit
'*************************************************************
' FUNCTION NAME: Age()
'
' PURPOSE:
' Calculates age in years from a specified 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 specified date.
' If the specified 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
Test delle funzioni Age() e AgeMonths()
Per testare le funzioni Age() e AgeMonths(), seguire questa procedura.
Importante
La procedura seguente richiede di modificare la data nel computer. Assicurarsi di completare il passaggio 6 per reimpostare la data alla data corrente.
Usando lo strumento Data/ora in Pannello di controllo, prendere nota della data corrente e quindi impostare la data sul 3 giugno 2001.
Aprire un modulo o crearne uno nuovo.
Scegliere Finestra immediata dal menu Visualizza.
Si supponga che la data di nascita del tuo amico fosse il 15 novembre 1967 e che oggi sia il 3 giugno 2001. Digitare la riga seguente nella finestra Immediata e quindi premere INVIO:
? Age("15/11/67")
Si noti che Microsoft Access risponde con il valore 33 (anni).
Digitare la riga seguente e quindi premere INVIO:
? AgeMonths("15/11/67")
Si noti che Microsoft Access risponde con il valore 6, che indica che sono trascorsi sei mesi dall'ultimo compleanno di questa persona. Il tuo amico ha 33 anni e sei mesi.
Usando lo strumento Data/ora in Pannello di controllo, reimpostare la data alla data corrente annotata nel passaggio 1.
Uso delle funzioni Age() e AgeMonths()
La procedura seguente illustra come contrassegnare i vecchi ordini inserendo il valore di età in un nuovo controllo.
Nella Northwind.mdb di database di esempio digitare le funzioni Age() e AgeMonth() in un nuovo modulo.
Aprire la maschera Ordini in visualizzazione Struttura e aggiungere un controllo casella di testo non associato.
Digitare la riga seguente nella proprietà ControlSource del nuovo controllo casella di testo:
=Age([OrderDate]) & " yrs " & AgeMonths([OrderDate]) & " mos"
Visualizzare la maschera in visualizzazione Maschera. Si noti che l'età dell'ordine viene visualizzata nel nuovo controllo casella di testo.
Riferimenti
Per altre informazioni sulle differenze di data, nel Editor di Visual Basic fare clic su Guida di Microsoft Visual Basic nel menu ?, digitare datediff function (Funzione datediff) nell'Assistente di Office o nella Creazione guidata risposte e quindi fare clic su Cerca per visualizzare l'argomento.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per