| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
ΓΕΙΑ ΣΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ ΕΧΩ ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ ΚΑΙ ΤΗΝ ΣΗΜΕΡΙΝΉ ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΘΕΛΩ ΝΑ ΥΠΟΛΟΓΙΣΩ ΣΕ ΑΛΛΟ ΠΕΔΙΟ ΤΗΣ ΦΟΡΜΑΣ ΤΗΝ ΗΛΙΚΙΑ ΤΟΥ. ΠΧ ΗΜΕΡ.ΓΕΝ/ΣΗ 1/1/2009 ΜΕΊΟΝ ΤΗΝ ΣΗΜΕΡΙΝΗ 11/7/2010 ΑΡΑ ΕΧΕΙ ΗΛΙΚΙΑ 1,7 ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ |
|
#2
| |||
| |||
|
Για μια γρήγορη λύση, δοκίμασε να βάλεις =Round((Now()-[imniaGennisis])/365;1) σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια. |
|
#3
| |||
| |||
| Παράθεση:
Σε συνέχεια της απάντησης σας να ρωτήσω κι εγώ κάτι. Ωραία βγάλαμε, την ηλικία. Πως μπορούμε να την αποδώσουμε σ' ένα πεδίο ενός πίνακα ??? Ευχαριστώ Γιώργος |
|
#4
| ||||
| ||||
|
Καλό ξημέρωμα... Γράψε στο συμβάν -μετά την ενημέρωση - στο πεδίο [imniaGennisis] το εξής : Κώδικας: [πεδιοΧ]= =Round((Now()-[imniaGennisis])/365;1) Καληνύχτα αγαπητέ μου Νίκος Δ. |
|
#5
| |||
| |||
| Παράθεση:
Ευχαριστώ πολύ αδερφέ μου. Καλό μεσημέρι... |
|
#6
| |||
| |||
|
Καλημέρα σε όλους, Ένας τρόπος που χρησιμοποιώ εγώ και έχω ενσωματώσει σε μία εφαρμογή μου, είναι ο κάτωθι: Έχω συμπεριλάβει την συνάρτηση "BasAge" σαν module στην visual basic και κατόπιν σε ένα πλαίσιο κειμένου που το έχω ονομάσει "ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ" και στην "Περιοχή προέλευσης δεδομένων" έχω την εξής εντολή: =Age2([ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ]) & AgeMonths([ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ]) όπου ΗΜΝΙΑ ΓΕΝΝΗΣΗΣ είναι το πεδίο που καταχωρούμε την ημερομηνία γέννησης. Το αποτέλεσμα εάν η ημερομηνία γέννησης είναι 03/05/1067 έχει ως εξής: "43 χρονών και 9 μηνών". Πιστεύω το παραπάνω παράδειγμα να εξυπηρετεί τον σκοπό σου. Φιλικά Φώτης. ΥΓ: Χωρίς να είμαι σίγουρος το παράδειγμα που αναφέρω το βρήκα παλαιότερα εδώ και του έκανα μερικές τροποποιήσεις. |
|
#7
| ||||
| ||||
|
Καλησπέρα σε όλους! Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην Access: Έστω ότι στον πίνακα με το όνομα table1 έχουμε τα εξής πεδία:
Κώδικας: 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
| |||
| |||
| Παράθεση:
Δοκίμασα το κώδικα σου όπως το παράδειγμα πόλυ ωραίος. (πχ. 30 έτη, 2 μήνες και 10 ημέρες). Δημιούργησα το ερώτημα και το προσαρμόσα σε ένα δικό μου πίνακα1 με τα πεδία : αναγνωριστικο (που είναι και primarykey), επίθετο, όνομα, ημ γεν/σης, ημερομηνία καταχώρησης, και άλλα πεδία (φυσικά υπάρχει και η αντίστοιχη φόρμα) και δούλεψε μία χαρά, Ότι καταχωρόυσα στο πίνακα ή φόρμα ενημερωνόταν το ερώτημα και έδινε την ηλικία Αυτό που θέλω να σε ρωτήσω είναι πως μπορώ να εμφανίσω το fulltext του ερωτήματος σε ένα πεδίο στον πίνακα και στη φόρμα. Ευχαριστώ. |
|
#9
| |||
| |||
|
Καλησπέρα στην παρέα 1. Ενώ τα ερωτήματα μπορούν να συνδυάσουν και να εμφανίσουν δεδομένα από πολλούς πίνακες,ένας πίνακας εμφανίζει μόνο τα δεδομένα, που είναι αποθηκευμένα σ’ αυτόν. Για να εμφανίσεις συνεπώς την ηλικία στον πίνακα θα πρέπει να του προσθέσεις ένα υπολογιζόμενο πεδίο στο οποίο θα αποθηκεύεται η ηλικία. Η προσθήκη υπολογιζόμενων πεδίων σε πίνακα δεν είναι καλή ιδέα. Δεν είναι αναγκαία, δημιουργεί πρόσθετη δουλειά και συχνά μπορεί να οδηγήσει σε λάθη. Μπορείς να διαβάσεις λεπτομέρειες στο μήνυμά μου # 12. 2. Για να εμφανίσεις την ηλικία σε μία φόρμα μπορείς: 2α. Να ορίσεις ως προέλευση των εγγραφών της φόρμας το ερώτημα που δημιούργησες και να προσθέσεις ένα πλαίσιο κειμένου με προέλευση το πεδίο «fulltext» του ερωτήματος. 2β. Να ορίσεις ως προέλευση των εγγραφών της φόρμας τον πίνακα και να προσθέσεις ένα αδέσμευτο πλαίσιο κειμένου με προέλευση έναν τύπο που θα υπολογίζει την ηλικία. Ένας απλός τύπος είναι ο ακόλουθος: =DLookUp("fulltext";"Query1";"ID=" & [ID]). Στον τύπο θα πρέπει να αντικαταστήσεις το Query1 με το όνομα του ερωτήματος, το ID με το όνομα του αναγνωριστικού στο ερώτημα και το [ID] με το όνομα του αναγνωριστικού στη φόρμα μέσα σε αγκύλες. Φιλικά/Γιώργος |
|
#10
| |||
| |||
|
Γιώργο καλημέρα. Εφάρμοσα τη 2β λύση που μου έδωσες και επιτέλους είδα στη φορμα την πλήρη ηλικία. Ευχαριστώ πόλυ για τις λύσεις που μου πρότεινες. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | 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.



Υβριδικός τρόπος

