Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Υπολογισμός ηλικίας (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/657-ypologismos-ilikias.html)

balex 11-07-10 23:53

Υπολογισμός ηλικίας
 
ΓΕΙΑ ΣΑΣ
ΣΕ ΜΙΑ ΦΟΡΜΑ ΕΧΩ ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ ΚΑΙ ΤΗΝ ΣΗΜΕΡΙΝΉ ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΘΕΛΩ ΝΑ ΥΠΟΛΟΓΙΣΩ ΣΕ ΑΛΛΟ ΠΕΔΙΟ ΤΗΣ ΦΟΡΜΑΣ ΤΗΝ ΗΛΙΚΙΑ ΤΟΥ. ΠΧ ΗΜΕΡ.ΓΕΝ/ΣΗ 1/1/2009 ΜΕΊΟΝ ΤΗΝ ΣΗΜΕΡΙΝΗ 11/7/2010 ΑΡΑ ΕΧΕΙ ΗΛΙΚΙΑ 1,7
ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ

schizo 12-07-10 00:37

Για μια γρήγορη λύση, δοκίμασε να βάλεις
=Round((Now()-[imniaGennisis])/365;1)
σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια.

balex 12-07-10 08:28

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

foxone 19-02-11 22:52

Απόδοση τιμής
 
Παράθεση:

Αρχική Δημοσίευση από schizo (Μήνυμα 3161)
Για μια γρήγορη λύση, δοκίμασε να βάλεις
=Round((Now()-[imniaGennisis])/365;1)
σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια.

Καλησπέρα
Σε συνέχεια της απάντησης σας να ρωτήσω κι εγώ κάτι. Ωραία βγάλαμε, την ηλικία. Πως μπορούμε να την αποδώσουμε σ' ένα πεδίο ενός πίνακα ???
Ευχαριστώ
Γιώργος

Meteora 20-02-11 00:21

Καλό ξημέρωμα...

Γράψε στο συμβάν -μετά την ενημέρωση - στο πεδίο [imniaGennisis] το εξής :
Κώδικας:


[πεδιοΧ]= =Round((Now()-[imniaGennisis])/365;1)

Προσοχή! Το [πεδίοΧ] πρέπει να είναι αριθμητικό.

Καληνύχτα αγαπητέ μου

Νίκος Δ.

foxone 20-02-11 12:09

Παράθεση:

Αρχική Δημοσίευση από Meteora (Μήνυμα 5289)
Καλό ξημέρωμα...

Γράψε στο συμβάν -μετά την ενημέρωση - στο πεδίο [imniaGennisis] το εξής :
Κώδικας:


[πεδιοΧ]= =Round((Now()-[imniaGennisis])/365;1)

Προσοχή! Το [πεδίοΧ] πρέπει να είναι αριθμητικό.

Καληνύχτα αγαπητέ μου

Νίκος Δ.

Καλημέρα Νίκο
Ευχαριστώ πολύ αδερφέ μου.
Καλό μεσημέρι...

fkonstas 20-02-11 13:26

1 Συνημμένο(α)
Καλημέρα σε όλους,
Ένας τρόπος που χρησιμοποιώ εγώ και έχω ενσωματώσει σε μία εφαρμογή μου, είναι ο κάτωθι:

Έχω συμπεριλάβει την συνάρτηση "BasAge" σαν module στην visual basic και κατόπιν σε ένα πλαίσιο κειμένου που το έχω ονομάσει "ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ" και στην "Περιοχή προέλευσης δεδομένων" έχω την εξής εντολή:

=Age2([ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ]) & AgeMonths([ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ])

όπου ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ είναι το πεδίο που καταχωρούμε την ημερομηνία γέννησης.

Το αποτέλεσμα εάν η ημερομηνία γέννησης είναι 03/05/1067 έχει ως εξής: "43 χρονών και 9 μηνών".

Πιστεύω το παραπάνω παράδειγμα να εξυπηρετεί τον σκοπό σου.

Φιλικά Φώτης.

ΥΓ: Χωρίς να είμαι σίγουρος το παράδειγμα που αναφέρω το βρήκα παλαιότερα εδώ και του έκανα μερικές τροποποιήσεις.

Tasos 20-02-11 16:55

Καλησπέρα σε όλους!

Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην Access:

Έστω ότι στον πίνακα με το όνομα table1 έχουμε τα εξής πεδία:
  1. ID (Αναγνωριστικό)
  2. StartDate (ημερομηνία)
  3. EndDate (ημερομηνία)
Σε ένα ερώτημα περνάμε τον παρακάτω κώδικα SQL:
Κώδικας:

SELECT table1.ID, table1.StartDate, table1.EndDate, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("yyyy",[StartDate],[EndDate])-IIf(Format([StartDate],"mmdd")>Format([EndDate],"mmdd"),1,0)) AS Years,
IIf([StartDate] Is Null Or [EndDate] Is Null,"",IIf(Day([StartDate])<=Day([EndDate]),DateDiff("m",[StartDate],[EndDate])
-[Years]*12,DateDiff("m",[StartDate],[EndDate])-[Years]*12-1)) AS Months, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("d",DateAdd("m",[Months],DateAdd("yyyy",[Years],[StartDate])),[EndDate])) AS Days, IIf([StartDate] Is Null Or
[EndDate] Is Null,"",IIf([StartDate]>[EndDate],"Λάθος καταχώρηση ημερομηνιών!",Switch([Years]=0,"",[Years]=1,
[Years] & " έτος",[Years]>1,[Years] & " έτη") & Switch([Years]=0,"",[Years]>0 And [Months]>0 And [Days]=0," και ",
[Years]>0 And [Months]>0,", ") & Switch([Months]=0,"",[Months]=1,[Months] & " μήνας",[Months]>1,
[Months] & " μήνες") & Switch([Months]=0 And [Years]=0,"",([Months]>0 Or [Years]>0) And [Days]>0," και ",[Months]
>0 Or [Years]>0,"") & Switch([Days]=0,"",[Days]=1,[Days] & " ημέρα",[Days]>1,[Days] & " ημέρες"))) AS FullText
FROM table1;

Το ερώτημα αυτό μας επιστρέφει και τους αριθμούς των Ετών, μηνών και ημερών που πηγάζουν από τη διαφορά των ημερομηνιών καθώς και την απόδοση τους σε συμβολοσειρά.


Φιλικά

Τάσος

foxone 21-02-11 21:42

1 Συνημμένο(α)
Καλησπέρα
Κατ' αρχήν να ευχαριστήσω όλους τους φίλους για την κάθε είδους βοήθεια. Στο προκείμενο τώρα. Ορμώμενος από την Αλεξάνδρα (post #1) και την απάντηση το Μάριου (post #2), "έχω την ηλικία ενός ατόμου" την οποία παρήγαγα σε ένα πλαίσιο κειμένου σε μια φόρμα. Στον σχετικό πίνακα έχω ένα πεδίο ilikia.Στο post #4 ρώτησα πως μπορώ να "εισάγω" την ηλικία στο πεδίο ilikia του πίνακα και στο post #5 o Νίκος μου έδωσε την σχετική απάντηση. Ενώ κάνω ότι μου λέει ο Νίκος, η ηλικία δεν περνάει στο σχετικό πεδίο του πίνακα.Τί κάνω λάθος ρε γμτ..?..
Ευχαριστώ πολύ
Γιώργος
Υ.Γ. Επισυνάπτω τη Β.Δ. σε συμπιεσμένη μορφή. Υπόψιν είναι μια προσπάθεια μηχανογράφησης του Τοπικού Συλλόγου Πολυτέκνων. Αυτό για να μην παρεξηγηθεί η προσπάθεια..

Meteora 22-02-11 07:23

1 Συνημμένο(α)
Καλημέρα..

Έκανα κάποιες διορθώσεις που αφορούν την επίλυση του ζητήματος...
Καλή συνέχεια

Με εκτίμηση

Νίκος Δ.


Η ώρα είναι 11:11.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2