Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Πίνακες ] Ενημέρωση ορισμένων στηλών (βάρδιες) ενός πίνακα από άλλο (με ημερομηνίες από/έως)

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 06-01-16, 18:50
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-07-2013
Μηνύματα: 25
Προεπιλογή Ενημέρωση ορισμένων στηλών (βάρδιες) ενός πίνακα από άλλο (με ημερομηνίες από/έως)

Γειά σας και πάλι...


Αφού ευχηθώ καλή χρονιά.. θα ήθελα να μου δώσετε τα φώτα σας (λόγω της ημέρας) σε ένα πρόβλημα κάπως σύνθετο.
Έχω έναν πίνακα "Patients" που καταχωρώ ασθενείς, καθώς και ημερομηνία και ώρα εισόδου και εξόδου τους από και προς το τμήμα.
Σε έναν άλλο μη συνδεδεμένο πίνακα "PatientNurseRatio" μεταξύ άλλων εισάγω ξανά για κάθε δυνατή ημερομηνία τον συνολικό αριθμό των ασθενών που υπάρχουν σε κάθε βάρδια (00:01 - 07:00 , 07:01 - 15:00 και 15:01 - 00:00) για κάθε ημερομηνία.
Υπάρχει τρόπος αυτόματης ενημέρωσης της σχετιζόμενης ημερομηνίας (MonitorDate) και των 3 στηλών του δεύτερου πίνακα (PatientsAtNight, PatientsAtDay, PatientsAtAfternoon) από τον πρώτο με κάποια μέθοδο?
Προσπάθησα να κάνω σε ένα ερώτημα άθροιση των υπαρχόντων ασθενών για κάθε βάρδια και σε κάθε ημερομηνία αλλά οι γνώσεις μου σε VBA είναι πολύ περιορισμένες.

Για τον υπολογισμό των ασθενών στην κάθε βάρδια ισχύουν:

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

Μπορεί κάποιος να βοηθήσει?...

Ευχαριστώ εκ των προτέρων
Φιλικά Δημήτρης...
Στέλνω ένα δείγμα της βάσης για καλύτερη κατανόηση
Συνημμένα Αρχεία
Τύπος Αρχείου: zip SplitToShifts.zip (137,9 KB, 16 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 07-01-16, 17:18
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλή χρονιά

Δημήτρη, δες το συνημμένο.

Πατώντας το κουμπί της φόρμας εκτελείται κώδικας που για κάθε εγγραφή του πίνακα PatientNurseRatio:

1) Βρίσκει τα τρία χρονικά διάστημα (Start1(i) έως End1(i), i=1,2,3) στα οποία διαιρούν τη μέρα οι ώρες 7:00 και 15:00.

2) Για κάθε ένα από τα παραπάνω διαστήματα δημιουργεί ένα μετρητή S(1), S(2) και S(3).

3) Διατρέχει όλες τις εγγραφές του πίνακα Patients και βρίσκει τις τομές t1, t2, t3 (κοινό χρονικό διάστημα) των παραπάνω διαστημάτων και του διαστήματος παραμονής του ασθενούς στο τμήμα.

4) Για κάθε τομή t1, t2, t3 με διάρκεια τουλάχιστον μια ώρα, αυξάνει τον αντίστοιχο μετρητή κατά μία μονάδα.

5) Ενημερώνει τα πεδία του πίνακα PatientNurseRatio της συγκεκριμένης εγγραφής.

Όπως φαίνεται από την παραπάνω διαδικασία οι μετρητές απαριθμούν τομές διαστημάτων και όχι ασθενείς.

Δεν μπορώ συνεπώς να αντιληφθώ, πως συμμετέχει στους υπολογισμούς αυτό που γράφεις:

«2.Ασθενείς, που στην ίδια βάρδια, ο ένας φεύγει και έρχεται νέος (σε χρόνους που δεν τέμνονται) θεωρούνται ως ένας ασθενής στην βάρδια».

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip SplitToShifts2.zip (155,6 KB, 15 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 07-01-16, 20:24
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Και μια πρόταση για τη βελτίωση της ταχύτητας.

Χρησιμοποιείται το ερώτημα qryHLP, αντί του πίνακα Patients.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip SplitToShifts3.zip (159,7 KB, 47 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 08-01-16, 01:30
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-07-2013
Μηνύματα: 25
Προεπιλογή

Γιώργο ευχαριστώ θερμά!!

Θα ήθελα σε παρακαλώ πολύ να μου πεις εάν μπορεί να τροποποιηθεί ώστε:

1) στον πίνακα PatientNurseRatio να υπολογίζονται οι τιμές από ΟΛΕΣ τις ημερομηνίες του Patients δηλαδή να ενημερώνεται ο πίνακας PatientNurseRatio και με τις ημερομηνίες που δεν υπάρχουν στον PatientNurseRatio και όχι να τροποποιούνται μόνο οι τιμές αυτών που ήδη υπάρχουν.


2) Υπάρχει η δυνατότητα να τροποποιηθεί η "νύχτα" (PatientsAtNight) ώστε να είναι όχι από 00:00 έως 07:00 αλλά από 23:00-07:00 (δηλαδή από τις 23:00 της προηγούμενης ημερομηνίας μέχρι τις 07:00 της επόμενης;


Ευχαριστώ και πάλι για τον κόπο και το χρόνο σου.
Δημήτρης
Απάντηση με παράθεση
  #5  
Παλιά 08-01-16, 16:39
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Δημήτρη, στο συνημμένο έγιναν σημαντικές αλλαγές:

1) Στον πίνακα Patients υπάρχουν μόνο δύο πεδία ApoTB και EosTB για την καταχώρηση του χρόνου εισόδου (ApoTB= ημερομηνία και ώρα πχ 2/3/2015 10:50) και του χρόνου εξόδου (EosTB= ημερομηνία και ώρα πχ 12/3/2015 23:50).

Η αλλαγή αυτή κρίθηκε σκόπιμη για την απλοποίηση του πίνακα και την απλοποίηση και επιτάχυνση των υπολογισμών.

2) Επακόλουθο της αλλαγής είναι η χρήση της συνάρτησης Now() αντί της Date().

3) Στον πίνακα προστέθηκε και ο κανόνας επικύρωσης [ApoTB]<[EosTB].

4) Το πεδίο [Eos] του βοηθητικού ερωτήματος qryHLP, όταν το πεδίο EosTB του πίνακα είναι κενό (ο ασθενής δεν έφυγε) , παίρνει τιμή Now().

5) Το πεδίο ID του πίνακα PatientNurseRatio από αυτόματης αρίθμησης αλλάχθηκε σε αριθμό.

6) Όταν πατούμε το κουμπί της φόρμας ο κώδικας:
  • Υπολογίζει την ελάχιστη (dtMin) και τη μέγιστη (dtMax) ημερομηνία του πίνακα Patients
  • Διαγράφει όλες τις εγγραφές του πίνακα PatientNurseRatio.
  • Για κάθε μέρα από dtMin μέχρι και dtMax προσθέτει μια εγγραφή στον πίνακα PatientNurseRatio
.
Σημειώνεται ότι στον κώδικα η «νύχτα» αρχίζει στις 23:00 της προηγούμενης μέρας.

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

Τελευταία επεξεργασία από το χρήστη kapetang : 08-01-16 στις 19:29. Αιτία: αλλαγή από New() σε Now()
Απάντηση με παράθεση
  #6  
Παλιά 09-01-16, 21:15
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-07-2013
Μηνύματα: 25
Προεπιλογή

Καλησπέρα

Για τους φίλους του forum στέλνω την τελευταία έκδοση της λύσης με το προαναφερθέν πρόβλημα
με μερικές δικές μου τροποποιήσεις.

Ευχαριστώ θερμά για άλλη μια φορά τον kapetang και το forum
Δημήτρης
Συνημμένα Αρχεία
Τύπος Αρχείου: zip SplitToShifts8a.zip (151,6 KB, 46 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη jim67 : 10-01-16 στις 18:01.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Σύγκριση 2 στηλών με δεδομένα και μεταφορά σε άλλο φύλλο tasvas Excel - Ερωτήσεις / Απαντήσεις 1 15-06-16 06:34
[Μορφοποίηση] Χρωματισμός ενός κελιού όταν περιέχει μία τιμή από άλλο πίνακα. VOGAS Excel - Ερωτήσεις / Απαντήσεις 13 28-01-15 09:37
[ Πίνακες ] Ενημέρωση δεδομένων πίνακα από άλλο πίνακα ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 2 27-04-11 12:50
[ Ερωτήματα ] Ενημέρωση ενός field πίνακα από 3 Rows άλλου πίνακα stathas Access - Ερωτήσεις / Απαντήσεις 8 23-05-10 11:36


Η ώρα είναι 14:49.