Ανανέωση ιστοσελίδας

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 11-07-10, 23:53
Όνομα: Αλεξάνδρα
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-07-2010
Μηνύματα: 34
Προεπιλογή Υπολογισμός ηλικίας

ΓΕΙΑ ΣΑΣ
ΣΕ ΜΙΑ ΦΟΡΜΑ ΕΧΩ ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ ΚΑΙ ΤΗΝ ΣΗΜΕΡΙΝΉ ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΘΕΛΩ ΝΑ ΥΠΟΛΟΓΙΣΩ ΣΕ ΑΛΛΟ ΠΕΔΙΟ ΤΗΣ ΦΟΡΜΑΣ ΤΗΝ ΗΛΙΚΙΑ ΤΟΥ. ΠΧ ΗΜΕΡ.ΓΕΝ/ΣΗ 1/1/2009 ΜΕΊΟΝ ΤΗΝ ΣΗΜΕΡΙΝΗ 11/7/2010 ΑΡΑ ΕΧΕΙ ΗΛΙΚΙΑ 1,7
ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ
Απάντηση με παράθεση
  #2  
Παλιά 12-07-10, 00:37
Όνομα: Μάριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 07-07-2009
Μηνύματα: 18
Προεπιλογή

Για μια γρήγορη λύση, δοκίμασε να βάλεις
=Round((Now()-[imniaGennisis])/365;1)
σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια.
Απάντηση με παράθεση
  #3  
Παλιά 19-02-11, 22:52
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 08-01-2010
Περιοχή: Διδυμότειχο
Μηνύματα: 17
Προεπιλογή Απόδοση τιμής

Παράθεση:
Αρχική Δημοσίευση από schizo Εμφάνιση μηνυμάτων
Για μια γρήγορη λύση, δοκίμασε να βάλεις
=Round((Now()-[imniaGennisis])/365;1)
σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια.
Καλησπέρα
Σε συνέχεια της απάντησης σας να ρωτήσω κι εγώ κάτι. Ωραία βγάλαμε, την ηλικία. Πως μπορούμε να την αποδώσουμε σ' ένα πεδίο ενός πίνακα ???
Ευχαριστώ
Γιώργος
Απάντηση με παράθεση
  #4  
Παλιά 20-02-11, 00:21
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

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

Γράψε στο συμβάν -μετά την ενημέρωση - στο πεδίο [imniaGennisis] το εξής :
Κώδικας:
 
[πεδιοΧ]= =Round((Now()-[imniaGennisis])/365;1)
Προσοχή! Το [πεδίοΧ] πρέπει να είναι αριθμητικό.

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

Νίκος Δ.
Απάντηση με παράθεση
  #5  
Παλιά 20-02-11, 12:09
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 08-01-2010
Περιοχή: Διδυμότειχο
Μηνύματα: 17
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Meteora Εμφάνιση μηνυμάτων
Καλό ξημέρωμα...

Γράψε στο συμβάν -μετά την ενημέρωση - στο πεδίο [imniaGennisis] το εξής :
Κώδικας:
 
[πεδιοΧ]= =Round((Now()-[imniaGennisis])/365;1)
Προσοχή! Το [πεδίοΧ] πρέπει να είναι αριθμητικό.

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

Νίκος Δ.
Καλημέρα Νίκο
Ευχαριστώ πολύ αδερφέ μου.
Καλό μεσημέρι...
Απάντηση με παράθεση
  #6  
Παλιά 20-02-11, 13:26
Όνομα: ΦΩΤΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-10-2010
Μηνύματα: 11
Προεπιλογή

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

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

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

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

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

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

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

ΥΓ: Χωρίς να είμαι σίγουρος το παράδειγμα που αναφέρω το βρήκα παλαιότερα εδώ και του έκανα μερικές τροποποιήσεις.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb hlikia.mdb (256,0 KB, 150 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 20-02-11, 16:55
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην 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;
Το ερώτημα αυτό μας επιστρέφει και τους αριθμούς των Ετών, μηνών και ημερών που πηγάζουν από τη διαφορά των ημερομηνιών καθώς και την απόδοση τους σε συμβολοσειρά.


Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 20-02-11 στις 19:54.
Απάντηση με παράθεση
  #8  
Παλιά 16-10-11, 21:48
Όνομα: θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-07-2011
Μηνύματα: 23
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Tasos Εμφάνιση μηνυμάτων
Καλησπέρα σε όλους!

Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην 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;
Το ερώτημα αυτό μας επιστρέφει και τους αριθμούς των Ετών, μηνών και ημερών που πηγάζουν από τη διαφορά των ημερομηνιών καθώς και την απόδοση τους σε συμβολοσειρά.


Φιλικά

Τάσος
Τάσος γειά σου.
Δοκίμασα το κώδικα σου όπως το παράδειγμα πόλυ ωραίος. (πχ. 30 έτη, 2 μήνες και 10 ημέρες).
Δημιούργησα το ερώτημα και το προσαρμόσα σε ένα δικό μου πίνακα1 με τα πεδία : αναγνωριστικο (που είναι και primarykey), επίθετο, όνομα, ημ γεν/σης, ημερομηνία καταχώρησης, και άλλα πεδία (φυσικά υπάρχει και η αντίστοιχη φόρμα) και δούλεψε μία χαρά, Ότι καταχωρόυσα στο πίνακα ή φόρμα ενημερωνόταν το ερώτημα και έδινε την ηλικία
Αυτό που θέλω να σε ρωτήσω είναι πως μπορώ να εμφανίσω το fulltext του ερωτήματος σε ένα πεδίο στον πίνακα και στη φόρμα.

Ευχαριστώ.
Απάντηση με παράθεση
  #9  
Παλιά 17-10-11, 17:51
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

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

Η προσθήκη υπολογιζόμενων πεδίων σε πίνακα δεν είναι καλή ιδέα. Δεν είναι αναγκαία, δημιουργεί πρόσθετη δουλειά και συχνά μπορεί να οδηγήσει σε λάθη.
Μπορείς να διαβάσεις λεπτομέρειες στο μήνυμά μου # 12.

2. Για να εμφανίσεις την ηλικία σε μία φόρμα μπορείς:
2α. Να ορίσεις ως προέλευση των εγγραφών της φόρμας το ερώτημα που δημιούργησες και να προσθέσεις ένα πλαίσιο κειμένου με προέλευση το πεδίο «fulltext» του ερωτήματος.
2β. Να ορίσεις ως προέλευση των εγγραφών της φόρμας τον πίνακα και να προσθέσεις ένα αδέσμευτο πλαίσιο κειμένου με προέλευση έναν τύπο που θα υπολογίζει την ηλικία.

Ένας απλός τύπος είναι ο ακόλουθος: =DLookUp("fulltext";"Query1";"ID=" & [ID]).
Στον τύπο θα πρέπει να αντικαταστήσεις το Query1 με το όνομα του ερωτήματος, το ID με το όνομα του αναγνωριστικού στο ερώτημα και το [ID] με το όνομα του αναγνωριστικού στη φόρμα μέσα σε αγκύλες.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #10  
Παλιά 18-10-11, 05:35
Όνομα: θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-07-2011
Μηνύματα: 23
Προεπιλογή

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


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Υπολογισμός φπα q.mrk Access - Ερωτήσεις / Απαντήσεις 1 18-03-15 18:10
Εύρεση ηλικίας γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 3 09-01-14 14:34
[Συναρτήσεις] Υπολογισμός ηλικίας Antony Excel - Ερωτήσεις / Απαντήσεις 5 24-05-12 17:58
[ Φόρμες ] Υπολογισμός ηλικίας mgeorge Access - Ερωτήσεις / Απαντήσεις 4 29-05-11 20:04


Η ώρα είναι 19:00.