| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| ||||
| ||||
|
Καλησπέρα σε όλους! Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην 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. |
|
#2
| |||
| |||
| Παράθεση:
Δοκίμασα το κώδικα σου όπως το παράδειγμα πόλυ ωραίος. (πχ. 30 έτη, 2 μήνες και 10 ημέρες). Δημιούργησα το ερώτημα και το προσαρμόσα σε ένα δικό μου πίνακα1 με τα πεδία : αναγνωριστικο (που είναι και primarykey), επίθετο, όνομα, ημ γεν/σης, ημερομηνία καταχώρησης, και άλλα πεδία (φυσικά υπάρχει και η αντίστοιχη φόρμα) και δούλεψε μία χαρά, Ότι καταχωρόυσα στο πίνακα ή φόρμα ενημερωνόταν το ερώτημα και έδινε την ηλικία Αυτό που θέλω να σε ρωτήσω είναι πως μπορώ να εμφανίσω το fulltext του ερωτήματος σε ένα πεδίο στον πίνακα και στη φόρμα. Ευχαριστώ. |
|
#3
| |||
| |||
|
Καλησπέρα στην παρέα 1. Ενώ τα ερωτήματα μπορούν να συνδυάσουν και να εμφανίσουν δεδομένα από πολλούς πίνακες,ένας πίνακας εμφανίζει μόνο τα δεδομένα, που είναι αποθηκευμένα σ’ αυτόν. Για να εμφανίσεις συνεπώς την ηλικία στον πίνακα θα πρέπει να του προσθέσεις ένα υπολογιζόμενο πεδίο στο οποίο θα αποθηκεύεται η ηλικία. Η προσθήκη υπολογιζόμενων πεδίων σε πίνακα δεν είναι καλή ιδέα. Δεν είναι αναγκαία, δημιουργεί πρόσθετη δουλειά και συχνά μπορεί να οδηγήσει σε λάθη. Μπορείς να διαβάσεις λεπτομέρειες στο μήνυμά μου # 12. 2. Για να εμφανίσεις την ηλικία σε μία φόρμα μπορείς: 2α. Να ορίσεις ως προέλευση των εγγραφών της φόρμας το ερώτημα που δημιούργησες και να προσθέσεις ένα πλαίσιο κειμένου με προέλευση το πεδίο «fulltext» του ερωτήματος. 2β. Να ορίσεις ως προέλευση των εγγραφών της φόρμας τον πίνακα και να προσθέσεις ένα αδέσμευτο πλαίσιο κειμένου με προέλευση έναν τύπο που θα υπολογίζει την ηλικία. Ένας απλός τύπος είναι ο ακόλουθος: =DLookUp("fulltext";"Query1";"ID=" & [ID]). Στον τύπο θα πρέπει να αντικαταστήσεις το Query1 με το όνομα του ερωτήματος, το ID με το όνομα του αναγνωριστικού στο ερώτημα και το [ID] με το όνομα του αναγνωριστικού στη φόρμα μέσα σε αγκύλες. Φιλικά/Γιώργος |
|
#4
| |||
| |||
|
Γιώργο καλημέρα. Εφάρμοσα τη 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 |
Η ώρα είναι 11:47.



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

