Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Άδειες
Καλημέρα στο Φόρουμ και σε όλα τα παιδιά. Έχω μια βάση με άδειες. Στην φόρμα άδειες παρουσιάζω την καρτέλα του εργαζόμενου και τις πληροφορίες των αδειών του που τις παίρνει από το ερώτημα AdiesIpolipoQ. Σε ένα πίνακα AdiesDikeomaP καταχωρώ το δικαίωμα - ημέρες - έτος Ένας εργαζόμενος μπορεί να δικαιούται πολλές άδειες (κανονική-εορταστική-ΑΜΕΑ κλπ) Στο δικαίωμα αδείας καταχωρώ πχ. κάποιον που έχει δικαίωμα 20 ημέρες κανονική 3 ημέρες εορταστική και 15 ημέρες ΑΜΕΑ Όταν καταχωρώ μία άδεια πχ 5 ημέρες κανονική κάπου έχω κάνει λάθος στο ερώτημα και αφαιρεί τις μέρες από όλα τα δικαιώματα δηλαδή μου βγάζει αποτέλεσμα: υπόλοιπο κανονικής: 20-5=15 υπόλοιπο εορταστικής 3-5= -2 υπόλοιπο ΑΜΕΑ 15-5=10 Πού έχω κάνει το λάθος; Νομίζω ότι είναι η ίδια λογική με τις απουσίες που με βοήθησαν πολύ ο Γιώργος και ο Κώστας αλλά δεν κατάφερα να το προσαρμόσω. Όποια βοήθεια καλοδεχούμενη. Ευχαριστώ εκ των προτέρων |
#2
| |||
| |||
Καλημέρα σ' όλο το forum. Σταύρο, Κοίτα το Query1 αν σου κάνει |
#3
| |||
| |||
Φίλε Κώστα σε ευχαριστώ κατ΄αρχάς που ασχολείσε όμως κάνει ακριβώς το ίδιο. Αν πας στον παπαδόπουλο κωστάκη θα δεις οτι το αφερεί και στις 2 δικαιούμενες άδειες Ευχαριστώ πάντως |
#4
| |||
| |||
Καλησπέρα Σταύρο, έκανα κάποιες αλλαγές και προσθήκες στη ΒΔ που ανέβασες. Το βασικό είναι ότι και στους δύο πίνακες με τις δικαιούμενες άδειες και τις πραγματοποιούμενες οι κωδικοί των εργαζόμενων και του είδους των αδειών πρέπει να είναι ταυτόσημοι. Για να γίνει αυτό πρέπει να επιλέγονται από πτυσσόμενα πλαίσια. Πρόσθεσα το ερώτημα SumAdionAnaErgazomenoEtosIdos που υπολογίζει το άθροισμα των αδειών που έχουν ληφθεί ανά εργαζόμενο, είδος άδειας και έτος. Το ερώτημα YpolipoAdionQ, νομίζω δίνει το ζητούμενο Φιλικά/Γιώργος |
#5
| |||
| |||
Γιώργο ευχαριστώ πολύ. Αυτό ήθελα
|
#6
| |||
| |||
Καλησπέρα Σταύρο, προκειμένου να απαντήσω στα ερωτήματά σου, προτίμησα να δημιουργήσω μία νέα βάση, αντί να εργαστώ σ’ αυτήν που ανέβασες. Το έκανα για τους παρακάτω λόγους: 1) Παρατήρησα κάποιες αδυναμίες στο σχεδιασμό. Για παράδειγμα στον πίνακα [AdiesDikeomaP] ορίζεις τα πεδία [ID_dikeomaadiasP], [kod_prosopiko_dikeomaadiasP], και [kod_idosadias_dikeomaadiasP] ως σύνθετο πρωτεύον κλειδί μολονότι το πεδίο [ID_dikeomaadiasP] είναι αυτόματης αρίθμησης (παίρνει μοναδικές τιμές). Υπάρχουν στοιχεία που αποθηκεύονται σε πολλούς πίνακες, όπως το είδος και η τιμή του είδους των αδειών. Ο σχεδιασμός δεν αποτρέπει κάποια λάθη, όπως την καταχώρηση αδειών χωρίς να υπάρχει αντίστοιχο δικαίωμα. 2) Ενώ βρίσκεσαι στο στάδιο ανάπτυξης της εφαρμογής οι φόρμες όταν ανοίγουν καταλαμβάνουν όλη την οθόνη και δυσχεραίνουν τον έλεγχο και την προσθήκη νέων στοιχείων. Σε μια πρώτη προσέγγιση (δε γνωρίζω το είδος των αδειών και τις ιδιαιτερότητές τους) η βάση δεδομένων πρέπει να έχει: 1) Ένα πίνακα για την καταχώρηση των στοιχείων του προσωπικού (πχ Prosopiko_p με πρωτεύον κλειδί ID_prosopiko_p). 2) Ένα πίνακα για την καταχώρηση των τύπων των αδειών (πχ IdosAdiasP με πρωτεύον κλειδί το πεδίο ID_Idos). 3) Ένα πίνακα για την καταχώρηση των δικαιούμενων αδειών κάθε εργαζόμενου (πχ DikeomaAdiesP). Εδώ πρέπει να υπάρχουν τα πεδία:
Έτσι η ίδια η access δεν επιτρέπει να έχουμε για το ίδιο έτος, εργαζόμενο και είδος άδειας, πολλές καταχωρήσεις (εγγραφές).
Μια κανονική άδεια δεν μπορεί να μεταφέρεται επ’ άπειρο. Νομίζω ότι πρέπει να ληφθεί μέχρι τέλους Μαρτίου του επόμενου έτους. Διαφορετικά χάνεται ή πληρώνεται. Αν επιτρέπονται μεταφορές, χωρίς όρια, μπορούμε να βάλουμε στο πεδίο αυτό μια μεγάλη τιμή πχ 31/12/9990. 4) Ένας πίνακας για την καταχώρηση των αδειών, που παίρνει το προσωπικό πχ AdiesP. Αυτός πρέπει να έχει:
Ανάμεσα στους παραπάνω πίνακες υπάρχουν σχέσεις, που, για την αποτροπή σφαλμάτων, θα πρέπει να οριστούν.
Λόγω των παραπάνω σχέσεων ο ασφαλέστερος και ευκολότερος τρόπος καταχώρησης και εμφάνισης δεδομένων είναι οι σύνθετες (κύρια, υποφόρμα) φόρμες. Η φόρμα ProsopikoF βοηθάει στην καταχώρηση των δικαιούμενων αδειών και αποτρέπει την καταχώρηση δικαιωμάτων για μη υπάρχοντες εργαζόμενους και μη υπάρχοντα είδη αδειών. Η φόρμα DikeomaAdiesF βοηθάει στην καταχώρηση των αδειών κάθε εργαζόμενου σε αντιστοιχία με τις δικαιούμενες απ’ αυτόν άδειες. Η κύρια φόρμα έχει ένα πλαίσιο κειμένου txtYpoloipo, που με τη βοήθεια του ερωτήματος YpolipoAdionQ δείχνει το υπόλοιπο της άδειας για κάθε δικαίωμα (συνδυασμό εργαζόμενου, έτους, είδους άδειας). Η ίδια η access δεν επιτρέπει καταχώρηση, αν δεν υπάρχει αντίστοιχο δικαίωμα. Επίσης με κατάλληλο κώδικα, που υπάρχει στη δευτερεύουσα φόρμα και τα ερωτήματα CheckYpolipoAdionQ και AdiesTomiMeDiastima_Qr αποτρέπεται η καταχώρηση: 1) Αδειών που η χρονική διάρκειά τους είναι και εκτός της λήξης του δικαιώματος. 2) Αδειών που η διάρκειά τους είναι μεγαλύτερη από το υπόλοιπο. 3) Αδειών για τον ίδιο εργαζόμενο που τα διαστήματά τους τέμνονται. Σταύρο ελπίζω να μη έγινα φλύαρος και να βοήθησα στο σωστό στήσιμο της βάσης σου. Φιλικά/Γιώργος |
#7
| |||
| |||
Γιώργο καλά το είπα για τις τελευταίες πινελιές. Προσπαθώ να καταλάβω το σκεπτικό της ζωγραφικής σου και τα ξαναλέμε Μένω υπόχρεος για την μεγάλη βοήθειά σου |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Εφαρμογή Access - (Υπηρεσίες - Αδειες - ...) | Meteora | Access - Ερωτήσεις / Απαντήσεις | 43 | 19-04-16 08:00 |
Άδειες και ημερομίσθια - βοήθεια | stavross | Access - Ερωτήσεις / Απαντήσεις | 11 | 09-11-12 15:01 |
Η ώρα είναι 20:08.