Καλημέρα στην παρέα
Δέσποινα το παράδειγμα που επισυνάπτω πιστεύω να σε βοηθήσει να καταλάβεις πως συγχρονίζονται οι φόρμες. Είναι σε access 2003 και συνεπώς δε θα έχεις πρόβλημα να το ανοίξεις.
- Η βάση δεδομένων αποτελείται από ένα πίνακα πελατών (tblCustomers) που περιέχει και ένα πεδίο (Active) τύπου Ναι/Όχι για να διαχωρίζει τους πελάτες σε ενεργούς και μη.
- Έχει μία φόρμα (frmCustomers1) που εμφανίζει όλους τους πελάτες και ένα κουμπί που αν το πατήσουμε εμφανίζει τη φόρμα (frmCustomers2) που περιέχει μόνο τους ενεργούς πελάτες.
Για να φανεί ότι οι δύο φόρμες είναι συγχρονισμένες, κάνουμε τη δοκιμή:
1. Ανοίγουμε την frmCustomers1 και πατούμε το κουμπί για να ανοίξει και η frmCustomers2.
2. Στη frmCustomers2 ο Αθανασίου είναι ενεργός πελάτης. Τον κάνουμε μη ενεργό (βγάζουμε το τικ από το πλαίσιο ελέγχου), οπότε εμφανίζεται ένα μολυβάκι αριστερά στη φόρμα που δείχνει ότι έγιναν αλλαγές. Ενώ η φόρμα είναι ενεργή αποθηκεύουμε τις αλλαγές από το μενού (Εγγραφές > αποθήκευση εγγραφής).
Παρατηρούμε ότι ο Αθανασίου δεν εμφανίζεται πλέον στην frmCustomers2 και στην frmCustomers1 εμφανίζεται ως ανενεργός.
3. Αν στη φόρμα frmCustomers1 κάνουμε πάλι ενεργό τον Αθανασίου αποθηκεύσουμε τις αλλαγές ((Εγγραφές > αποθήκευση εγγραφής) και πατήσουμε το κουμπί εμφανίζεται πάλι στην frmCustomers2.
Η παραπάνω λειτουργικότητα εξασφαλίζεται από τον παρακάτω κώδικα που βρίσκεται στη φόρμα frmCustomers2
Κώδικας:
Private Sub Form_Activate()
Me.Requery
End Sub
Private Sub Form_AfterUpdate()
Me.Requery
Forms("frmCustomers1").Requery
End Sub
Πάντως έχω την εντύπωση ότι δουλεύσεις κάπως ανορθόδοξα γι' αυτό σου προτείνω και γω να ξανακοιτάξεις τη δομή της βάσης σου.
Φιλικά/Γιώργος