Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Δημιουργία εφαρμογής πρωτοκόλλου
Καλημέρα σε όλους, καλό καλοκαίρι, καλές διακοπές, με υγεία, ευτυχία, ευημερία. Είμαι στη διαδικασία δημιουργίας μίας εφαρμογής πρωτοκόλλου σε 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 περιβάλλον και να αποφεύγονται πιθανές διπλές τιμές; Ευχαριστώ εκ των προτέρων. Και πάλι, καλές διακοπές σε όλους |
#2
| |||
| |||
To 2o έχει χρησιμοποιηθεί κατά κόρον απο επαγγελματική επιπέδου εφαρμογή...Απο εκεί και πέρα κάθε λύση είναι αποδεκτή εφόσον δουλεύει οπως θες
|
#3
| |||
| |||
Ναι, η αλήθεια είναι πως την έχω δει αυτή τη τεχνική. Πιστεύω σε JET-ACE, θα δουλέψει μια χαρά. Μελλοντικά πιστεύεις πως αυτός ο τρόπος είναι ο ιδανικότερος, σε περίπτωση που η βάση μεταφερθεί σε κάποιο άλλο RDBMS πχ SQL Server; Ή μπορεί π.χ. να γίνει η όλη διαδικασία μέσω κάποιας Stored Procedure για παράδειγμα
Τελευταία επεξεργασία από το χρήστη niktsol : 26-07-21 στις 21:10. |
#4
| |||
| |||
Όπως έγραψα...όλα θα δουλέψουν..με τα συν τους και τα πλην τους. Άμα ανησυχείς ότι κάποια στιγμή κάτω απο καποιες συνθήκες κάτι θα πάει στραβά κάνε το σύστημα όσο πιο προσαρμόσιμο μπορείς...του τύπου ολα θα δουλεύουν Κώδικας: protocolNo = getProtocolNo() |
#5
| |||
| |||
Παράθεση:
Θα δοκιμάσω και τις τρεις λύσεις. Ήδη φτιάχνω κάποια batch με εικονικά δεδομένα κάνοντας μια εξομοίωση με εισαγωγή σε multi user περιβάλλον. Είναι μία καλή λύση για πειραματισμό και δημιουργία ενός mini project στην αρχή, λόγω του έχω να ασχοληθώ με προγραμματισμό από την εποχή της Access Basic, (1997 έκδοση Access αν θυμάμαι καλά). Ευχαριστώ πολύ για την ανταπόκρισή σου στο μήνυμά μου |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Αρίθμηση πρωτοκόλλου | nsrentzos | Excel - Ερωτήσεις / Απαντήσεις | 5 | 18-12-20 21:12 |
[Μορφοποίηση] Αριθμός πρωτοκόλλου - για δυνατούς λύτες | tilestora | Excel - Ερωτήσεις / Απαντήσεις | 4 | 11-02-14 12:14 |
[ Ερωτήματα ] Αριθμός πρωτοκόλλου & έτος | xristos | Access - Ερωτήσεις / Απαντήσεις | 2 | 14-01-12 19:17 |
Η ώρα είναι 21:49.