Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Ανανέωση Δεδομένων
Γεια σας και πάλι.. Αντιμετωπίζω πρόβλημα με ένα πλήκτρο το οποίο υποτίθεται κάνει ανανέωση δεδομένων στη φόρμα, στην πραγματικότητα όμως δεν το κάνει… Βασικά έχω χωρισμένη την βάση στα δύο (πίνακες και τα υπόλοιπα) έτσι την δουλεύουν δύο άτομα ταυτόχρονα. Το πρόβλημα είναι πώς εάν ο Α χρήστης περάσει κάποια δεδομένα δεν τα βλέπει ο Β χρήστης, έβαλα ένα πλήκτρο με τον οδηγό της Access για ανανέωση δεδομένων στην φόρμα αλλά δεν κάνει καμία ανανέωση στην φόρμα του Β χρήστη.. Τη μπορώ να κάνω για αυτό…. |
#2
| ||||
| ||||
Καλησπέρα Τι σε εμποδίζει να κάνεις ανανέωση και στη φόρμα Β; Δεν είναι ανάγκη να έχεις κάποιο κουμπί, αφού -υπό προυποθέσεις- μπορεί η ανανέωση να γίνεται αυτοματοποιημένα μέσω ενεργοποίησης κάποιου άλλου συμβάντος για παράδειγμα την εστίαση, την είσοδο, το διπλό κλικ... Η φόρμα δείχνει την εικόνα του πίνακα ή του ερωτήματος από το οποίο αντλεί τα δεδομένα, όπως αυτά καταγράφονται την στιγμή της φόρτωσης. Άν κάποια ρουτίνα στο παρασκήνιο ή ένα άλλο πρόγραμμα (να η δική σου περίπτωση) αλλάξει τα δεδομένα, τότε για να εμφανιστούν απαιτείται ανανέωση. Με εκτίμηση Νίκος Δ. |
#3
| |||
| |||
Παράθεση:
Το Θέμα είναι πώς δεν ανανεώνονται τα δεδομένα, το πλήκτρο για ανανέωση υπάρχει και στους δύο χρήστες, και σκέφτηκα πώς οποιοσδήποτε χρειαστεί να κάνει κίνηση θα πατήσει το πλήκτρο ανανέωση και θα ειδή τα τελευταία δεδομένα που έχει εισάγει ο άλλος χρήστης... Ακριβώς εκεί είναι το πρόβλημα δεν κάνει ανανέωση το πλήκτρο που έχω εισάγει ... Μήπως τελικά χρειάζεται κάποιον κώδικα και όχι η αυτόματη εισαγωγή πλήκτρου που έχω κάνει. |
#4
| ||||
| ||||
...Αν χρησιμοποιείς μακροεντολή τότε κάνεις ανανέωση (Refresh). Δηλαδή 'ανανεώνεις' μόνο τις τιμές όσων records υπήρχαν στη βάση και έχουν υποστεί αλλαγή. Δεν βλέπεις τα νέα που ενδεχομένως προστέθηκαν. Η λύση: Με VBA γράψε για την φόρμα της οποίας τα δεδομένα θέλεις να δεις-για παράδειγμα αν είναι η τρέχουσα- το Me.Requery (που σημαίνει επαναφόρτωση της φόρμας) Τα λέμε φίλτατε Νίκος Δ. |
#5
| |||
| |||
Ακριβώς έτσι ήταν φίλε Νίκο.. Χρησιμοποιούσα Μακροεντολή και έκανα Refresh... Κατόπιν έβαλα σε κώδικα το Me.Requery και δούλεψε, προσοχή όμως για άλλους χρήστες μου δούλεψε μόνο στο συμβάν Με Την Εστίαση.... Ευχαριστώ πάρα πολύ Νίκο.. |
#6
| ||||
| ||||
Καλημέρα σε όλους! Αγαπητέ Χρήστο, δεν μπορώ να γνωρίζω κάτω από ποιες συνθήκες μπορεί να εξαπολυθεί το συμβάν Form_GotFocus() στη φόρμα σου. Ωστόσο κατά τη γνώμη μου ο κώδικας θα έπρεπε να τρέχει με το πάτημα ενός κουμπιού ή μετά από το πάτημα πλήκτρων ή συνδυασμού πλήκτρων και να γίνεται Αν προκληθεί λοιπόν κάποιο συμβάν που θα περιέχει τη γραμμή Me.Requery, o χρήστης που επεξεργάζεται μια εγγραφή ας πούμε στη θέση 1000 θα μεταφερθεί στην πρώτη εγγραφή. Αυτό σημαίνει ότι η εγγραφή στη θέση 1000 μπορεί :
Σε κάθε περίπτωση χρήστης θα πρέπει να ψάξει ξανά την εγγραφή που (έχασε μπροστά από τα μάτια του λόγω μη αναμενόμενης ανανέωσης δεδομένων) για να την τελειώσει Αυτά προς πληροφόρηση Καλή συνέχεια! Φιλικά / Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#7
| |||
| |||
Καλημέρα κι απο εμένα... Αντιμετώπισα το πρόβλημά σου σε βάση που δουλεύω αρκετό καιρό τώρα.. Έχω 4-5 χρήστες πάνω στην βάση οπότε ο κάθε χρήστης κάθε φορά μπορεί να ανοίξει την ίδια εγγραφή με την ίδια φυσικά φόρμα και να υπάρχει πρόβλημα στα δεδομένα, πότε θα σώσει στην βάση τα δεδομένα, ή πότε θα επιτρέπει την αλλαγή τους κλπ... Εγώ το δουλεύω ως εξής, α) όρισα login στην βάση ώστε να ξέρω κάθε φορά ποιος χρήστης ανοίγει ποια εγγραφή (προσωρινός πίνακας ανοικτών εγγραφών) β) Στο άνοιγμα της εγγραφής στον πίνακας ανοικτών εγγραφών γράφω μια γραμμή με τα στοιχεία του χρήστη και την ανοικτή εγγραφή γ) Στο κλείσιμο της εγγραφής διαγράφω αυτή την εγγραφή δ) Εάν πριν να κλείσει η εγγραφή, 2ος χρήστης πάει να ανοίξει την ίδια εγγραφή, τότε κλειδώνω την όποια μεταβολή στα δεδομένα, και τον ενημερώνω με ένα msgbox για αυτό. Την παραπάνω διαδικασία την επέλεξα, ώστε ο χρήστης να έχει γνώση για την επεξεργασία της εγγραφής απο 2ο χρήστη, αλλά και για την ακεραιότητα των δεδομένων της βάσης... Οπότε κάθε φορά που ο χρήστης ανοίξει την φόρμα μπορεί να δει (ή να ξέρει) εάν τα δεδομένα του είναι "φρέσκα" ή μεταβάλλονται... Όσο για το refresh των δεδομένων σου με το Me.requery, όπως πρότεινε και ο Τάσος θα κάνεις την δουλειά σου... Ελπίζω να βοήθησα (κάπως...) ...
__________________ Always Look on the Bright Side of Life! |
#8
| |||
| |||
Παράθεση:
Βασικά είχα ξεχάσει την Μακροεντολή για Refresh, την οποία την είχα στο συμβάν Με το κλικ και έτσι κοιτούσα τα πιο κάτω συμβάν και ίσως να μπερδεύονταν... Έσβησα την Μακροεντολή και στο Με το κλικ έβαλα το Me.Requery το οποίο και δούλεψε κανονικά... Τώρα ως προς την προστασία της εγγραφής που μπορεί να επεξεργάζεται ο ένας χρήστης ενώ κάνει ανανέωση ο άλλος, αυτό δυστυχώς δεν είμαι σε θέση να το λύσω απλά βασίζομαι στο νούμερο των εγγραφών το οποίο είναι κατά μέσο όρο 30 εγγραφές το εξάωρο και κάθε εγγραφή κρατάει 2 με 3 λεπτά... |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Φόρμες ] Ανανέωση φόρμας με Enter | mousatos | Access - Ερωτήσεις / Απαντήσεις | 6 | 19-06-15 08:37 |
[ Φόρμες ] Ανανέωση Φορμών | stelianta | Access - Ερωτήσεις / Απαντήσεις | 2 | 21-03-12 22:51 |
[ Εκθέσεις ] Ανανέωση Έκθεσης | ΤΖΙΜΗΣ | Access - Ερωτήσεις / Απαντήσεις | 10 | 07-07-11 21:15 |
Ανανέωση data σε subform (datasheet) | dionisis | Access - Ερωτήσεις / Απαντήσεις | 4 | 14-03-11 17:34 |
Ανανέωση περιεχομένου σύνθετου πλαισίου | stavros2244 | Access - Ερωτήσεις / Απαντήσεις | 8 | 03-05-10 21:14 |
Η ώρα είναι 08:31.