Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Εργασία με ημερομηνίες στην Access

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

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

 

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

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

Στο αρχείο που επισυνάπτεται γίνεται μια προσπάθεια υλοποίησης μιας ιδέας του Γιάννη (nisgia)
Συγκεκριμένα στην κεφαλίδα της φόρμας, που εμφανίζει τους εργαζόμενους, προστέθηκε ένα χειριστήριο επιλογής ημερομηνίας και ένα κουμπί για την εφαρμογή ή ακύρωση ενός φίλτρου.
Με την εφαρμογή του φίλτρου εμφανίζονται μόνο οι διαθέσιμοι για την επιλεγείσα ημερομηνία εργαζόμενοι (αυτοί που δε δούλεψαν ίδια μέρα το τελευταίο 15/ημερο), ενώ με την ακύρωσή του όλοι.
Για τη διαμόρφωση της τιμής του φίλτρου χρησιμοποιείται το βοηθητικό ερώτημα
Κώδικας:
SELECT DISTINCT ΕΡΓΑΖΟΜΕΝΟΙ.*
FROM ΕΡΓΑΖΟΜΕΝΟΙ INNER JOIN ΕΡΓΑΣΙΑ ON ΕΡΓΑΖΟΜΕΝΟΙ.ΚΩΔ_ΕΡΓ=ΕΡΓΑΣΙΑ.ΚΩΔ_ΕΡΓΑΖΟΜΕΝΟΥ
WHERE (((ΕΡΓΑΣΙΑ.[ΗΜΕΡΟΜΗΝΙΑ ΕΓΑΣΙΑΣ]) Between DateAdd("d",-15,Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8) And
 DateAdd("d",-1,Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8)) And 
((Format([ΗΜΕΡΟΜΗΝΙΑ ΕΓΑΣΙΑΣ],"dddd"))=Format(Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8,"dddd")));
Επίσης για την εφαρμογή και ακύρωση του φίλτρου χρησιμοποιείται ο παρακάτω κώδικας.
Κώδικας:
Private Sub cmdOpenReport_Click()
    Me.Filter = "[ΕΡΓΑΖΟΜΕΝΟΙ]![ΚΩΔ_ΕΡΓ] Not In (select  [qryFilter]![ΚΩΔ_ΕΡΓ] from [qryFilter])"
    Me.FilterOn = Me.cmdOpenReport.Caption = "Εμφάνιση διαθέσιμων"
    If Me.FilterOn Then
        Me.cmdOpenReport.Caption = "Εμφάνιση όλων"
    Else
        Me.cmdOpenReport.Caption = "Εμφάνιση διαθέσιμων"
    End If
End Sub

Private Sub Form_Load()
    Me.Filter = ""
End Sub
Ανεξάρτητα από την εξαφάνιση του NIC, που έθεσε το θέμα, επειδή παρουσιάζει γενικότερο ενδιαφέρον, πιστεύω ότι του αξίζει μια πιο ολοκληρωμένη προσέγγιση.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb NICmdb2.mdb (232,0 KB, 61 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 12-10-10 στις 17:08. Αιτία: κάποιοι χαρακτήρες αλλαξαν
Απάντηση με παράθεση
  #2  
Παλιά 13-10-10, 00:41
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Καλησπέρα και από μένα!
Παράθεση:
Αρχική Δημοσίευση από kapetang Εμφάνιση μηνυμάτων
Ανεξάρτητα από την εξαφάνιση του NIC, που έθεσε το θέμα, επειδή παρουσιάζει γενικότερο ενδιαφέρον, πιστεύω ότι του αξίζει μια πιο ολοκληρωμένη προσέγγιση.
Επειδή το παραπάνω με βρίσκει σύμφωνο αλλά και επειδή τον τελευταίο καιρό, πέρα από τις απουσίες μου, οι παρουσίες μου είναι...
"όλο λάδι-λάδι και από τηγανίτα τίποτα", ετοίμασα μια υλοποίηση της ιδέας μου η οποία νομίζω πως προσεγγίζει την ολοκλήρωση που της αξίζει.

Πέρα από τα θέματα που σχετίζονται άμεσα με το ζητούμενο, μέσα από το παράδειγμα παρουσιάζονται και αρκετά άλλα ενδιαφέροντα πράγματα
άλλα ως "tips and trics" και άλλα ως θέματα προς περαιτέρω ανάλυση και βελτίωση.
Ένα από αυτά, το οποίο με ταλαιπωρεί συνεχώς και ακόμη μέχρι τώρα δεν έχω βρει μια αποδεκτή λύση είναι η χρήση σύνθετων πλαισίων (comboboxes)
πολλαπλών στηλών σε προβολή φύλλου δεδομένων (Datasheet) η λίστα των οποίων πρέπει να ανανεώνεται κατά το χρόνο εκτέλεσης.

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

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

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

Για να μην κουράσω όμως άλλο με το μπλα-μπλα, εξετάστε αν θέλετε το παράδειγμα και θέστε τα σχόλια και τις ερωτήσεις σας
έτσι ώστε να ανάψει και λίγο η κουβέντα.
Άλλωστε, όπως λένε και οι Κινέζοι: Μια εφαρμογή = χιλιάδες megabytes...!

Θα χαρώ πολύ να σας ακούσω/διαβάσω.

Καλό ξημέρωμα!
Γιάννης
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Employments.zip (146,5 KB, 72 εμφανίσεις)
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #3  
Παλιά 13-10-10, 13:05
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

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

Πριν αρχίσετε τη γκρίνια και τα παράπονα , επισυνάπτω και την αναβαθμισμένη έκδοση της Employments.mdb
στην οποία προστέθηκαν κάποιες νέες λειτουργίες (όπως επιλογή της επιθυμητής εβδομάδας στο εβδομαδιαίο πρόγραμμα εργασιών)
και βελτιώθηκαν κάποιες παλιές.

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

Τότε φίλε Γιώργο (kapetang), φαντάζομαι πως θα μπορούμε άνετα να την αποκαλέσουμε ολοκληρωμένη προσέγγιση, δεν νομίζεις;

Καλό απόγευμα!
Γιάννης

Υ.Γ.
Αν αναρωτηθείτε που βρίσκω τα εικονίδια του παραδείγματος, τα κατεβάζω (δωρεάν) από εδω.
Τώρα κατά πόσο έχω το δικαίωμα να τα χρησιμοποιώ στο επίπεδο που τα χρησιμοποιώ ...είναι άλλο θέμα.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Employments_V2.zip (121,7 KB, 125 εμφανίσεις)
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!

Τελευταία επεξεργασία από το χρήστη nisgia : 13-10-10 στις 13:21. Αιτία: Προσθήκη υστερόγραφου
Απάντηση με παράθεση
  #4  
Παλιά 15-10-10, 17:20
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

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

Φίλε μου Γιάννη, στην εφαρμογή σου επεκτείνοντας το αρχικό ζητούμενο ασχολείσαι με τον προγραμματισμό της υπηρεσίας σε μια στρατιωτική μονάδα.
Το θέμα αυτό, όπως και κάθε εφαρμογή διαχείρισης προσωπικού και ανάθεσης εργασίας είναι κατά τη γνώμη μου από τα πολυπλοκότερα.
Στην περίπτωσή μας εμπλέκονται αρκετά στοιχεία. Τελείως πρόχειρα σημειώνω τα ακόλουθα:
1. Διάρκεια της βάρδιας, το πλήθος των σκοπιών , των θαλάμων και των περιπόλων, η σύνθεση των περιπόλων, κλπ (ημερήσιες ανάγκες σε προσωπικό).
2. Αντικατάσταση σε περίπτωση κωλύματος (πχ ασθένειας).
3. Ενίσχυση υπηρεσίας σε περίπτωση έκτακτων μέτρων ασφάλειας.
4. Δυνατότητα πολλαπλής βάρδιας.
5. Υπάρχον προσωπικό.
6. Διάστημα προγραμματισμού (βδομάδα, 15/ήμερο, κλπ).
7. Κάποιοι περιορισμοί για τη συχνότητα και το είδος της υπηρεσίας για να μη πήξουν οι νέοι.
Στην πληροφορική ο κανόνας είναι η διόρθωση και η αναβάθμιση των εφαρμογών. Έτσι είναι στις αρχές μου να μη θεωρώ καμία εφαρμογή ολοκληρωμένη και πάντα περιμένω το καλύτερο .
Η εφαρμογή σου όμως είναι πολύ καλή, έχει ιδέες, ομορφιά και χιούμορ.

Γιώργος
ΥΓ Και μια απορία: στο ερώτημα qryweekScedule χρησιμοποιείται σύνδεσμος LEFT JOIN και μία συνθήκη (not is null) δε θα μπορούσε να χρησιμοποιηθεί INNER JOIN χωρίς τη συνθήκη;
Απάντηση με παράθεση
  #5  
Παλιά 20-10-10, 01:02
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

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

Η αριστερή συνένωση (LEFT JOIN) και η συνθήκη "Not is Null" στο ερώτημα που αναφέρεις Γιώργο
είναι απομεινάρια της προσπάθειάς μου να εμφανίσω όλες τις ημέρες της τρέχουσας εβδομάδας στη γραμμή κεφαλίδων.

Όμως στη συνέχεια είδα πως δεν ταξινομούνται με βάση την ημερομηνία αλλά το όνομα της ημέρας.
Έτσι λοιπόν "υποχρέωσα" το ερώτημα να επιστρέψει τα ονόματα των ημερών με τη σωστή σειρά
θέτοντάς τα στο πεδίο επικεφαλίδων στηλών (Column Headings) του φύλλου ιδιοτήτων του ερωτήματος.
Όταν όμως επετεύχθη το ζητούμενο δεν γύρισα πίσω να δω αν δουλεύει και με την απλή εσωτερική ένωση
όπως πολύ σωστά παρατήρησες.

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

Το επίκεντρο του παραδείγματος ήταν ο τρόπος απόκρυψης όσων έχουν εργαστεί την τρέχουσα ημέρα
και η επέκταση σε αυτό ήταν η κυκλική επιλογή εργασίας για το τρέχον άτομο.
Αυτό εννοούσα με το "ολοκληρωμένη προσέγγιση" και όχι κάποια εφαρμογή έτοιμη προς διανομή.

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

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

Χαίρομαι όμως πραγματικά που σου άρεσε και που ασχολήθηκες μαζί του.

Και τέλος, αν θέλεις την προσωπική μου άποψη, συμφωνώ απόλυτα στο ότι καμία εφαρμογή δεν θεωρείται ολοκληρωμένη,
ειδικά όσες προσπαθούν να συμπεριλάβουν τον ανθρώπινο παράγοντα.
Ίσως οι εφαρμογές των κβαντικών υπολογιστών να τα καταφέρουν όμως για την ώρα, με τα τρανζιστοράκια, δεν υπάρχει περίπτωση.
Είναι θέμα ασυμβατότητας...!

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

Φιλικά,
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #6  
Παλιά 20-10-10, 17:20
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από nisgia Εμφάνιση μηνυμάτων
.................................................. .......................
Νομίζω πως θα πρέπει να ρίξεις λίγο το επίπεδο των απαιτήσεών σου απέναντί μου.
.................................................. .................................................. .......................
Επίσης η ιδεολογία μου λέει πως, όροι όπως "διαχείριση προσωπικού" και "ανάθεση εργασιών", δεν αφορούν την ανθρώπινη φύση.
Φίλε Γιάννη με την ποιότητα της δουλειάς σου ανέβασες πολύ τον πήχη των απαιτήσεων. Δεν πρόσεξες!!!!!
Οι όροι "διαχείριση προσωπικού" και "ανάθεση εργασιών" δεν αρέσουν και σε μένα. Μερικές φορές όμως αναρωτιέμαι, σε μία χώρα που οι περισσότεροι αντιπαθούν τη δουλειά τους, μήπως θα έπρεπε να είναι περισσότερο αποδεκτοί;

Γιώργος
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Αθροισματα στην access q.mrk Access - Ερωτήσεις / Απαντήσεις 4 30-07-15 14:10
εργασία σε access μητσάκος Access - Ερωτήσεις / Απαντήσεις 1 27-10-14 07:52
Εργασία Video Club Access coldwinter18 Access - Ερωτήσεις / Απαντήσεις 4 30-05-13 11:05
[ Ερωτήματα ] Index στην Access mdragon Access - Ερωτήσεις / Απαντήσεις 9 10-03-11 14:14
[ Συναρτήσεις ] Η Mod στην access xristos0718 Access - Ερωτήσεις / Απαντήσεις 4 22-03-10 13:17


Η ώρα είναι 21:39.