Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 29-01-09, 09:52
kon73 Ο χρήστης kon73 δεν είναι συνδεδεμένος
Όνομα: Ηλιάδης Κωνσταντίνος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 13-12-2008
Περιοχή: Chicago
Μηνύματα: 119
Προεπιλογή Re: Μεταφορά δεδομένων απο πεδίο σε πεδίο

Φίλε 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
Απάντηση με παράθεση