Δημιουργός: Γιώργος Καπετανόπουλος (18/9/2016)
Ζητούμενο Ένας πίνακας περιέχει τα πεδία [fCode] και [Status].
Θέλουμε, αφού ορίσουμε μία τιμή για το πεδίο [Status] (πχ «abcd») και ένα σύνολο τιμών για το πεδίο [fCode] (πχ 11111, 22222, 33333, …), να ενημερώσουμε το πεδίο [Status] του πίνακα με την ορισθείσα τιμή (πχ «abcd»), στις εγγραφές που η τιμή του πεδίου [fCode], ανήκει στο ορισθέν σύνολο (πχ 11111, 22222, 33333, …).
Μ’ άλλα λόγια θέλουμε να ενημερώνουμε μαζικά το πεδίο [Status].
Αν αποσυμπιέσουμε το συνημμένο, θα πάρουμε τα αρχεία:
- UpdateWith_In_HelpTable.mdb
- UpdateListWithCheckBoxes.accdb
Στα αρχεία αυτά παρουσιάζονται αρκετές υλοποιήσεις του ζητούμενου.
Εισαγωγή αναγκαίων στοιχείων
Σ’ όλες τις λύσεις η τιμή ενημέρωσης επιλέγεται από ένα σύνθετο πλαίσιο.
Για τον ορισμό του συνόλου των τιμών του πεδίου [fCode], χρησιμοποιείται ή TextBox (φόρμα frmUpdateStatusWhereIn) ή ListBox πολλαπλών επιλογών (φόρμες frmUpdateStausWhereIn2 , frmUpdateStausWhereIn3 και frmUpdateStausQryUpdate).
Στο αρχείο UpdateListWithCheckBoxes.accdb περιλαμβάνεται και η φόρμα ListBoxCheckBoxesQryUpdate στην οποία το ListBox έχει, για την πολλαπλή επιλογή, CheckBoxes.
Για την υλοποίηση αυτού του ειδικού ListBox, χρησιμοποιήθηκε το πεδίο αναζήτησης [fCode], πολλαπλών επιλογών, του πίνακα [tblListBoxCheckBox].
Επειδή τα πεδία αυτά δεν υποστηρίζονται από τα αρχεία *.mdb, η φόρμα ListBoxCheckBoxesQryUpdate δεν περιλαμβάνεται στο αρχείο UpdateWith_In_HelpTable.mdb.
Ενημέρωση πεδίου [Status]
Το σημαντικότερο στην ενημέρωση είναι ο προσδιορισμός (από το σύνολο των εγγραφών του πίνακα) των εγγραφών που θα ενημερωθούν.
Χρησιμοποιήθηκαν δύο τρόποι:
1) Διαμόρφωση κατάλληλου κριτηρίου της μορφής:
WHERE [fCode] in (111111, 222222, 3333333, ….)
Η μέθοδος αυτή εφαρμόστηκε στις φόρμες frmUpdateStatusWhereIn, frmUpdateStatusWhereIn2, και frmUpdateStatusWhereIn3.
2) Χρήση βοηθητικού πίνακα (tblHLP) και ερωτήματος ενημέρωσης (qryUpdate).
Όταν πατούμε το κουμπί της ενημέρωσης, ο κώδικας διαγράφει τα δεδομένα του βοηθητικού πίνακα και στη συνέχεια, αφού του προσθέσει τις κατάλληλες εγγραφές, με βάση την τιμή ενημέρωσης και το σύνολο των κωδικών, εκτελεί το ερώτημα ενημέρωσης.
Η μέθοδος αυτή εφαρμόστηκε στις φόρμες frmUpdateStausQryUpdate και ListBoxCheckBoxesQryUpdate.
Περισσότερες λεπτομέρειες στα σχετικά αρχεία.
Φιλικά/Γιώργος