Φίλε Meteora Καλημέρα,
Σ'ευχαριστώ για τα καλά σου λόγια και εύχομαι οι προσδοκίες μας να εκπληρωθούν.
Λοιπόν Να δώσω 2 λύσεις τις οποίες διαλέγεις και εφαρμόζεις. Θα αναφέρω φυσικά τα πλεονεκτήματα αυτών των λύσεων :
1. Η φόρμα σου έχει ουσιαστικά όλα τα πεδία καθότι αυτά βρίσκονται στον πίνακα Table1. Επομένως μία απλή λύση είναι να δώσεις στο Event AfterUpdate του πεδίουΑ την εξής γραμμή κώδικα
Κώδικας:
me.Πεδίο1=me.ΠεδίοΑ
2. Μία εντολή SQL και πάλι στο Event AfterUpdate του πεδίουΑ την εξής γραμμή κώδικα
Κώδικας:
docmd.RunSql("Update Table1 Set Table.Πεδίο1=" & me.ΠεδίοΑ &" where τμήμα='"& me.τμήμα & "'")
Αναλύω τώρα συνοπτικά τα πλεονεκτήματα της κάθε λύσης εφόσον πρώτα αναφέρω ότι και στις δύο περιπτώσεις το αποτέλεσμα είναι το ίδιο.
1. Με την πρώτη λύση έχεις ουσιαστικά ένα copy-paste των τιμών που έχουν τα πεδία της φόρμας. Δεν χρειάζεται refresh η φόρμα και το αποτέλεσμα είναι άμεσα ορατό. Τι μπορεί όμως να συμβεί. Αν το πεδίοΑ είναι το τελευταίο στοιχείο-αντικείμενο της φόρμας τότε μετά το Enter ή γενικώς το afterupdate του μεταβαίνουμε σε νέα εγγραφή της φόρμας και η Access αναξιόπιστα μπορεί να δώσει την τιμή του ΠεδίουΑ στο πεδίο1 της επόμενης εγγραφής και όχι της ιδίας εγγραφής.
2. Εδώ έχουμε εντολή SQL που είναι πιο αξιόπιστη σ'αυτό που του ζητάμε να κάνει. Ενημερώνει το λοιπόν την τιμή Πεδίο1 με το ΠεδίοΑ αρκεί το τμήμα να είναι το Unique ID δηλαδή το πρωτεύον κλειδί. Δηλαδή κάθε εγγραφή να έχει ως μοναδικό κλειδί το τμήμα και το τμήμα να μην επαναλαμβάνεται σε άλλη εγγραφή. (Επειδή αυτό όπως καταλαβαίνω δεν ισχύει βάλε στην 2η λύση όπου τμήμα ένα πεδίο που είναι και ο μοναδικός αριθμός UniqueID.
Προσπαθώντας να γίνω το κατά δύναμην αναλυτικός, εύχομαι να μην σε μπέρδεψα. Αν όμως χρειάζεσαι περαιτέρω βοήθεια ξαναστείλε μου ερώτημα ή αν θέλεις στείλε μου σε PM την βάση σου.
Φιλικά
kon73 / iliadisk