Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Access > Access samples - Χρήσιμα αρχεία & παραδείγματα > Χειρισμός χρονικών διαστημάτων

Access samples - Χρήσιμα αρχεία & παραδείγματα Αρχεία Ms-Access διαθέσιμα για τα μέλη του Forum.

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-12-12, 11:01
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.156
Προεπιλογή Χειρισμός χρονικών διαστημάτων

Δημιουργός: Γιώργος Καπετανόπουλος (Έτος 2012)
Περιβάλλον: Acces 2003, 2007, 2010
----------------------------------------------------------------------

Ένα χρονικό διάστημα ορίζεται από τη στιγμή έναρξης (Start) και τη στιγμή λήξης (End).

Επίσης μπορεί να οριστεί από τη στιγμή έναρξης (Start) και τη διάρκεια.

Επειδή, όταν είναι γνωστή η έναρξη και η διάρκεια ενός διαστήματος, εύκολα μπορεί να οριστεί η λήξη του, παρακάτω υποθέτω ότι το χρονικό διάστημα θα ορίζεται από την αρχή και το τέλος του και θα συμβολίζεται ως κλειστό διάστημα [Start, End].

Για παράδειγμα η ηλικία μπορεί να θεωρηθεί ως διάστημα με Strat=ημερομηνία έναρξης και End=τρέχουσα ημερομηνία.

Επίσης η κανονική άδεια είναι διάστημα με Strat=ημερομηνία έναρξης και End=ημερομηνία λήξης.

Για την αποθήκευση ενός διαστήματος σ’ ένα πίνακα απαιτούνται δύο πεδία ημερομηνίας, ένα (Apo) για την αποθήκευση της έναρξης και ένα (Eos) για την αποθήκευση της λήξης.

Η συνημμένη ΒΔ παρακολουθεί τις απουσίες του προσωπικού μιας επιχείρησης, συνεπώς αποθηκεύει και διαχειρίζεται χρονικά διαστήματα.

Περιέχει αρκετές συναρτήσεις και διαδικασίες που δίνουν λύσεις σε αρκετά προβλήματα διαχείρισης διαστημάτων.

Συγκεκριμένα πραγματοποιούν:

1) Τον υπολογισμό της διάρκειας σε έτη, μήνες και μέρες,
που απαιτείται για τον προσδιορισμό της ηλικίας ή του χρόνου υπηρεσίας ενός εργαζόμενου.

2) Βρίσκουν την τομή δύο διαστημάτων

Τομή είναι το κοινό τμήμα [tStart, tEnd] δύο διαστημάτων [Start1, End1] και [Start2, End2].

Απαιτείται όταν θέλουμε να διαιρέσουμε ένα διάστημα σε μικρότερα τμήματα πχ μηνιαία.

3) Προσδιορίζουν αν ένα διάστημα τέμνεται με ένα ή περισσότερα διαστήματα ενός πίνακα

Σ’ ένα πίνακα με τις απουσίες του προσωπικού τα χρονικά διαστήματα, για τον ίδιο εργαζόμενο, δεν πρέπει να τέμνονται.

Όταν καταχωρούμε διαστήματα ή τροποποιούμε, με τη βοήθεια της σχετικής συνάρτησης, μπορούμε να διαπιστώσουμε αν υπάρχει τομή και να αποτρέψουμε την αποθήκευση της εγγραφής, αν υπάρχει.

4) Τον έλεγχο, αν ένας πίνακας περιέχει τεμνόμενα διαστήματα

Αυτό στη ΒΔ γίνεται με το ερώτημα ApousiesTomi_Qr, που δημιουργήθηκε εύκολα ορίζοντας τα κατάλληλα κριτήρια στο καρτεσιανό γινόμενο του πίνακα Apousies με τον εαυτό του.

Ο έλεγχος αυτός είναι χρήσιμος για πίνακες που δεν επιτρέπεται τομή διαστημάτων.

5) Δημιουργία μηνιαίων διαστημάτων

Τα χρονικά διαστήματα, πχ απουσίας, μπορεί να εκτείνονται σ ‘ένα η περισσότερους μήνες ή και έτη.

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

6) Προσδιορισμός των εργάσιμων ημερών και των αργιών ενός διαστήματος

Πολλές φορές χρειάζεται να ξέρουμε πόσες εργάσιμες και πόσες αργίες περιέχονται σ ‘ένα χρονικό διάστημα.

Ένα παράδειγμα αποτελούν οι κανονικές άδειες στις οποίες χρεώνονται μόνο οι εργάσιμες μέρες.

Για να προσδιοριστούν οι αργίες (Σαββατοκύριακα, επίσημες γιορτές) πρέπει να καθορίσουμε τις επίσημες γιορτές.

Αυτό γίνεται με τη συνάρτηση ToPasxa, που καθορίζει την ημερομηνία του Πάσχα και τη διαδικασία OrismosEorton, που δημιουργεί τις γιορτές και τις αποθηκεύει σ’ ένα αντικείμενο τύπου Scripting.Dictionary.

7) Το τέλος ενός διαστήματος από την αρχή του και τον αριθμό των εργάσιμων ημερών

Αυτό είναι χρήσιμο για τον προσδιορισμό της ημερομηνίας λήξης μιας κανονικής άδειας, όταν γνωρίζουμε την ημερομηνία έναρξης και τον αριθμό των εργάσιμων ημερών.

Αν μετά την ημερομηνία συμπλήρωσης των εργάσιμων ημερών υπάρχουν συνεχόμενες αργίες, συνυπολογίζονται.

Για τον υπολογισμό της ημερομηνίας του Πάσχα χρησιμοποιήθηκε η συνάρτηση που ανέβασε στο φόρουμ ο Τάσος (διαχειριστής).

Επίσης για την ανάπτυξη των συναρτήσεων που αναφέρονται στις περιπτώσεις 1, 6 και 7 χρησιμοποιούνται κάποιες ιδέες από παρόμοια εργασία του Τάσου.

Εκτός από τη ΒΔ, στο συμπιεσμένο φάκελο περιέχεται και ένα αρχείο .doc, με λεπτομερείς οδηγίες.

Για τη σωστή εγκατάσταση της ΒΔ, θα πρέπει:

1) Η ΒΔ και το αρχείο .doc να εγκατασταθούν στον ίδιο φάκελο.

2) Ο φάκελος να οριστεί ως ασφαλής τοποθεσία.

3) Στο περιβάλλον της VBA να γίνει αναφορά στη βιβλιοθήκη Microsoft Scripting Runtime.

Σχόλια και προτάσεις για διορθώσεις και βελτιώσεις είναι πάντα ευπρόσδεκτα.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ManageIntervals.zip (127,5 KB, 358 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 04-12-12 στις 15:51. Αιτία: Αλλαγή συνημμένου για συμβατότητα με 2003
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Χειρισμός χρονικών διαστημάτων spavlos Access - Ερωτήσεις / Απαντήσεις 3 23-10-13 18:48


Η ώρα είναι 07:53.