Access'te ay ve yıl olarak yaş hesaplamak için iki işlev oluşturma
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir.
Bu makale bir Microsoft Office Access veritabanı (.accdb ve .mdb) ve Microsoft Access projesi (.apd) için geçerlidir.
Özet
Bu makalede, belirli bir tarihe göre bir kişinin veya şeyin yaşını hesaplamak için kullanabileceğiniz iki işlevin nasıl oluşturulacağı gösterilmektedir.
Not
Bu makalede kullanılan tekniğin tanıtımını örnek dosya Qrysmp00.exe görebilirsiniz.
Daha fazla bilgi
İşlevleri Oluşturma
Modülde aşağıdaki kodu yazın veya yapıştırın:
'==========================================================
' 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
Age() ve AgeMonths() İşlevlerini Test Etme
Age() ve AgeMonths() işlevlerini test etmek için aşağıdaki adımları izleyin.
Önemli
Aşağıdaki adımlar, bilgisayarınızdaki tarihi değiştirmenizi ister. Tarihi geçerli tarihe sıfırlamak için 6. adımı tamamladığınızdan emin olun.
Denetim Masası'da Tarih/Saat aracını kullanarak geçerli tarihi not edin ve tarihi 3 Haziran 2001 olarak ayarlayın.
Bir modül açın veya yeni bir modül oluşturun.
Görünüm menüsünde Hemen Pencere'ye tıklayın.
Arkadaşınızın doğum tarihinin 15 Kasım 1967 ve bugün 3 Haziran 2001 olduğunu varsayalım. Anlık penceresine aşağıdaki satırı yazın ve ENTER tuşuna basın:
? Yaş("11/15/67")
Microsoft Access'in 33 (yıl) değeriyle yanıt verdiğini unutmayın.
Aşağıdaki satırı yazın ve ENTER tuşuna basın:
? AgeMonths("11/15/67")
Microsoft Access'in 6 değeriyle yanıt verdiğini ve bu kişinin son doğum gününün üzerinden altı ay geçtiğini unutmayın. Arkadaşın 33 yaşında ve altı aylık.
Denetim Masası'da Tarih/Saat aracını kullanarak tarihi 1. adımda not ettiğiniz geçerli tarihe sıfırlayın.
Age() ve AgeMonths() İşlevlerini Kullanma
Aşağıdaki yordamda, yaş değerini yeni bir denetime yerleştirerek eski siparişlerin nasıl işaretileceği açıklanmaktadır.
Örnek veritabanı Northwind.mdb yeni modülde Age() ve AgeMonth() işlevlerini yazın.
Siparişler formunu Tasarım görünümünde açın ve ilişkisiz bir metin kutusu denetimi ekleyin.
Yeni metin kutusu denetiminin ControlSourceproperty bölümüne aşağıdaki satırı yazın:
=Age([OrderDate]) & " yrs " & AgeMonths([OrderDate]) & " mos"
Formu Form görünümünde görüntüleyin. Siparişin yaşının yeni metin kutusu denetiminde görüntülendiğini unutmayın.
Başvurular
Tarih farklılıkları hakkında daha fazla bilgi için Visual Basic Düzenleyici Yardım menüsünde Microsoft Visual Basic Yardımı'na tıklayın, Office Yardımcısı'na veya Yanıt Sihirbazı'na datediff işlevi yazın ve ardından konuyu görüntülemek için Ara'ya tıklayın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin