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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 20-02-11, 16:55
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.037
Προεπιλογή

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

Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην 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.
Απάντηση με παράθεση
  #2  
Παλιά 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 του ερωτήματος σε ένα πεδίο στον πίνακα και στη φόρμα.

Ευχαριστώ.
Απάντηση με παράθεση
  #3  
Παλιά 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] με το όνομα του αναγνωριστικού στη φόρμα μέσα σε αγκύλες.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #4  
Παλιά 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


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