
21-07-21, 10:12
|
Όνομα: Νίκος Έκδοση λογισμικού Office: Ms-Office 2016 Γλώσσα λογισμικού Office: Αγγλική | | Εγγραφή: 21-07-2021
Μηνύματα: 3
| |
Δημιουργία εφαρμογής πρωτοκόλλου
Καλημέρα σε όλους, καλό καλοκαίρι, καλές διακοπές, με υγεία, ευτυχία, ευημερία.
Είμαι στη διαδικασία δημιουργίας μίας εφαρμογής πρωτοκόλλου σε Access. Η εφαμοργή κρατά αύξοντες αριθμούς πρωτοκόλλου, μοναδικούς για κάθε τμήμα, οι οποίοι αριθμοί, ξεκινάνε κάθε νέα χρονιά από ένα.
Η εφαμοργή θα είναι σε ένα περιβάλλον 10-15 χρηστών.
Έχω σκεφτεί 3 τρόπους για να αντλώ τον επόμενο διαθέσιμο αριθμό πρωτοκόλλου ανά τμήμα, οι οποίοι είναι οι κάτωθι:
1) Χρήση της Dmax συνάρτησης. Η ερώτησή μου είναι η εξής σε αυτόν τον τρόπο. Υπάρχει ενδεχόμενο, για χιλιοστά των δευτερολέπτων να επιστρέψει ίδια τιμή η Dmax για 2 διαφορετικούς χρήστες, οπότε να χτυπήσει run-time error? Η σύνταξη της Dmax που σκέφτομαι είναι η ακόλουθη: =DMax("[RefNumber]", "ReferenceT", "[DepID] = (κωδικός τμήματος ανάλογα για ποιο τμήμα ψάχνουμε τον αριθμό πρωτοκόλλου'")+1
2) Χρήση πίνακα που να κρατά τα IDs των τμημάτων, τον τρέχοντα αριθμό πρωτοκόλλου και το τρέχον έτος. Όταν κάποιος χρήστης ζητά αριθμό πρωτοκόλλου για το αντίστοιχο τμήμα, θα γίνεται κλείδωμα της αντίστοιχης εγγραφής του πίνακα, θα ελέγχεται το έτος (αν έχει αλλάξει η χρονιά ο αριθμός γίνεται 1 και αυτόματα ο πίνακας κρατά το νέο έτος αλλιώς ο αριθμός θα αυξάνεται κατά 1) και θα απελευθερώνεται η εγγραφή). Σε αυτό το τρόπο έχουμε έναν έξτρα πίνακα
3) Με χρήση select query όπου θα επιστρέφει τον μέγιστο αριθμό πρωτοκόλλου και το έτος για το Χ τμήμα, σε ένα recordset όπου πάλι θα αυξάνεται κατά ένα ο αριθμός, εκτός και αν έχει αλλάξει το έτος οπότε ο αριθμός ξεκινά από ένα.Το recordset θα κλειδώνει με Pessimistic τύπο κλειδώματος
Ποιος κατά τη γνώμη σας, είναι ο καλύτερος τρόπος για να αποδίδω τον επόμενο διαθέσιμο αριθμό πρωτοκόλλου σε ένα έγγραφο, σε multiuser περιβάλλον και να αποφεύγονται πιθανές διπλές τιμές;
Ευχαριστώ εκ των προτέρων. Και πάλι, καλές διακοπές σε όλους
|