Με τον τρόπο δημιουργίας δύο λειτουργίες για να υπολογίσετε την ηλικία τους μήνες και έτη στη Microsoft Access

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 290190 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Για προχωρημένους: Απαιτεί ειδικό κωδικοποίησης, διαλειτουργικότητας και ικανότητες πολλών χρηστών.

Αυτό το άρθρο ισχύει για μια βάση δεδομένων της Microsoft Office Access (.accdb και .mdb) και για το έργο Microsoft Access (.apd).

Για την έκδοση αυτού του άρθρου Microsoft Access 2000, ανατρέξτε στο θέμα210522.
Για την έκδοση αυτού του άρθρου Microsoft Access 97, ανατρέξτε στο θέμα290190.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο παρουσιάζει τον τρόπο δημιουργίας δύο λειτουργίες που μπορείτε να χρησιμοποιήσετε για να υπολογίσετε την ηλικία ενός ατόμου ή πράγμα που βασίζεται σε μια καθορισμένη ημερομηνία.

ΣΗΜΕΙΩΣΗΜπορείτε να δείτε μια επίδειξη την τεχνική που χρησιμοποιείται σε αυτό το άρθρο στο δείγμα αρχείου Qrysmp00.exe.Για πρόσθετες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του δείγματος αρχείου, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
207626ACC2000: Access 2000 δείγματα ερωτημάτων διαθέσιμη στο Κέντρο λήψης

Περισσότερες πληροφορίες

Δημιουργία τις λειτουργίες

Πληκτρολογήστε ή επικολλήστε τον ακόλουθο κώδικα στη λειτουργική μονάδα:
'==========================================================
' 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
				

Έλεγχος των συναρτήσεων AgeMonths() και Age()

Για να δοκιμάσετε τις λειτουργίες Age() και AgeMonths(), ακολουθήστε τα εξής βήματα.

Σημαντικό: Τα παρακάτω βήματα θα σας ζητήσει να αλλάξετε την ημερομηνία του υπολογιστή σας. Βεβαιωθείτε να ολοκληρώσετε το βήμα 6 για να επαναφέρει την ημερομηνία για την τρέχουσα ημερομηνία.
  1. Χρησιμοποιώντας τοΗμερομηνία/Ώρα (Date/Time)εργαλείο του πίνακα ελέγχου, σημειώστε την τρέχουσα ημερομηνία και, στη συνέχεια, ορίστε την ημερομηνία 3 Ιουνίου 2001.
  2. Ανοίξτε μια λειτουργική μονάδα ή δημιουργήστε ένα νέο.
  3. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΠαράθυρο "Άμεση".
  4. Θεωρείται ότι η ημερομηνία γέννησης του φίλου σας ήταν 15 Νοεμβρίου, 1967 και σήμερα είναι 3 Ιουνίου 2001. Πληκτρολογήστε την ακόλουθη γραμμή στο παράθυρο εντολών και κατόπιν πιέστε το πλήκτρο ENTER:
    ?Age("11/15/67")
    						
    Σημειώστε ότι η Microsoft Access αποκρίνεται με την τιμή 33 (χρόνια).
  5. Πληκτρολογήστε την ακόλουθη γραμμή και στη συνέχεια πιέστε το πλήκτρο ENTER:
    ?AgeMonths("11/15/67")
    						
    Σημειώστε ότι η Microsoft Access αποκρίνεται με την τιμή 6, που υποδηλώνει ότι έχουν περάσει έξι μήνες από την τελευταία γενέθλια αυτού του ατόμου. Ο φίλος σας είναι 33 ετών και έξι μήνες παλιά.
  6. Χρησιμοποιώντας τοΗμερομηνία/Ώρα (Date/Time)εργαλείο του πίνακα ελέγχου, να επαναφέρει την ημερομηνία της τρέχουσας ημερομηνίας που σημειώσατε στο βήμα 1.

Χρήση των συναρτήσεων AgeMonths() και Age()

Η παρακάτω διαδικασία εξηγεί τον τρόπο σήμανσης παλιές παραγγελίες, τοποθετώντας την τιμή ηλικία σε ένα νέο στοιχείο ελέγχου.
  1. Στο δείγμα βάσης δεδομένων Northwind.mdb, πληκτρολογήστε τις συναρτήσεις Age() και AgeMonth() σε μια νέα λειτουργική μονάδα.
  2. Ανοίξτε τη φόρμα Orders σε προβολή σχεδίασης και προσθέστε ένα στοιχείο ελέγχου πλαισίου κειμένου δεσμευμένου.
  3. Πληκτρολογήστε την παρακάτω γραμμή τηςControlSourceη ιδιότητα από το νέο στοιχείο ελέγχου πλαισίου κειμένου:
    =Age([OrderDate]) & "yrs" & AgeMonths([OrderDate]) & "mos"
  4. Προβάλετε τη φόρμα σε προβολή φόρμας. Σημειώστε ότι εμφανίζεται η παλαιότητα της εντολής με το νέο στοιχείο ελέγχου πλαισίου κειμένου.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τις διαφορές ημερομηνία, στην επεξεργασία της Visual Basic, κάντε κλικ στο κουμπίΒοήθεια της Microsoft Visual BasicΣτο διακομιστήΒοήθεια (Help)μενού, πληκτρολογήστεη συνάρτηση DateDiffο Βοηθός του Office ή της "Οδηγός απαντήσεων" και στη συνέχεια κάντε κλικΑναζήτησηΓια να προβάλετε το θέμα.

Ιδιότητες

Αναγν. άρθρου: 290190 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Access 2007
  • Microsoft Access 2002 Standard Edition
Λέξεις-κλειδιά: 
kbdatetime kbfunctions kbvba kbprogramming kbhowto kbmt KB290190 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:290190

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com