Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Η βάση να ανοίγει μόνο γιά αναγνωση
Καλησπέρα Μια φόρμα μπορούμε, μέσα από τις ιδιότητες, να τη ρυθμίσουμε ώστε να είναι μόνο για ανάγνωση! Είναι δυνατόν, να γενικεύσουμε τη ρύθμιση αυτή (με κώδικα σε ένα κουμπί εντολής) έτσι ώστε όλες οι φόρμες τής βάσης δεδομένων να είναι μόνον για ανάγνωση και το αντίστροφο (πλήρη λειτουργικότητα)? Σας ευχαριστώ εκ των προτέρων |
#2
| ||||
| ||||
Καλησπέρα Δημήτρη! Θα πρέπει να απενεργοποιείς προγραμματιστικά τη δυνατότητα καταχώρησης, επεξεργασίας και διαγραφής δεδομένων για κάθε φόρμα με μια ρουτίνα που θα ελέγχει τα δικαιώματα του τρέχοντος χρήστη. Αυτό είναι το ένα σκέλος. Το επόμενο είναι να επισημάνεις ποια από τα στοιχεία ελέγχου στις φόρμες μπορούσαν με το κλικ ή με κάποιο άλλο συμβάν να προκαλέσουν έμμεσα ή άμεσα αλλαγές στις εγγραφές των πινάκων και χρησιμοποιώντας κώδικα VBA να τα απομονώσεις. Εναλλακτικά μπορείς να δημιουργήσεις αντίγραφα των φορμών που στη συνέχεια θα τροποποιήσεις έτσι ώστε να συμπεριφέρονται σαν "ReadOnly". Έτσι με τη χρήση κώδικα και αναλόγως τα δικαιώματα του τρέχοντος χρήστη θα φορτώνονται οι κατάλληλες φόρμες κάθε φορά. Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#3
| |||
| |||
Γεια σας Τάσο σε ευχαριστώ γιά την απάντησή σου. Προσπάθησα να απενεργοποιήσω προγραμματιστικά τη δυνατότητα καταχώρησης, επεξεργασίας και διαγραφής δεδομένων για κάθε φόρμα, σε επίπεδο τρέχοντος χρήστη, (κάνοντας χρήση των, AllowAdditions, AllowDeletions, AllowEdits επάνω στο παράδειγμα που ανέβασε πρόσφατα ο φίλος Βραχνάκης Γιώργος - το οποίο σχετίζεται με δικαιώματα χρηστών), αλλά δεν βλέπω να τα καταφέρνω με τον πρόσθετο κώδικα! Αν μπορείς να ανεβάσεις κάποιο παράδειγμα θα μου έδινες πολύτιμη βοήθεια! Καλή συνέχεια... |
#4
| |||
| |||
Καλημέρα Δημήτρη, Δες ένα παράδειγμα για το ζητούμενο σου. Δες την διαφορά της φόρμας frmUser ανάλογα με το λογαριασμό που κάνεις login στην εφαρμογή πατώντας το κουμπί «Άνοιγμα φόρμας FrmUser» από την φόρμα frm_Home. Ευχαριστώ. |
#5
| ||||
| ||||
Καλημέρα σε όλους! Γιώργο, Δημήτρη, θέλω να σας ευχαριστήσω για τη συμμετοχή και τη δραστηριότητα σας στο φόρουμ! Δημήτρη, το παραδειγματικό αρχείο του Γιώργου νομίζω ότι σε καλύπτει σε μεγάλο βαθμό. Αν χρειαστείς κάτι άλλο, εδώ είμαστε. Αυτό που πρέπει σίγουρα να ελέγξεις είναι ποια από τα στοιχεία ελέγχου στις φόρμες μπορούσαν με το κλικ ή με κάποιο άλλο συμβάν να προκαλέσουν έμμεσα ή άμεσα αλλαγές στις εγγραφές των πινάκων και χρησιμοποιώντας κώδικα VBA ή τροποποίηση της μακροεντολής, να τα απενεργοποιήσεις ή να αποκρύψεις. Αυτό γιατί το να ανοίξεις τη φόρμα σε κατάσταση μόνο για ανάγνωση δεν αποτρέπει την αλλοίωση δεδομένων που προέρχεται από VBA ή μακροεντολή της Access. Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
Καλημέρα σε όλους Τάσο και Γιώργο, ευχαριστώ για τις απαντήσεις σας. Είμαι ειλικρινά υπόχρεος που ασχοληθήκατε με το θέμα μου! Πράγματι η φόρμα [frmUser] είναι "ReadOnly". Ωστόσο, από κάποιες πρόχειρες δοκιμές που έκανα, αυτό δεν ισχύει για άλλες φόρμες που προσθέτουμε στην παραδειγματική βάση. Και οι φόρμες στη βάση μου είναι αρκετές. Το ζητούμενο είναι ανοίγοντας τη βάση ως χρήστης1, ας πούμε, όλες οι φόρμες που εμπεριέχονται στην τρέχουσα βάση να είναι "ReadOnly"! Τώρα, σχετικά με την υπόδειξή σου Τάσο "να επισημάνεις ποια από τα στοιχεία ελέγχου στις φόρμες μπορούσαν με το κλικ ή με κάποιο άλλο συμβάν να προκαλέσουν έμμεσα ή άμεσα αλλαγές στις εγγραφές των πινάκων και χρησιμοποιώντας κώδικα VBA να τα απομονώσεις", πραγματικά δεν γνωρίζω πως μπορεί να γίνει αυτό σε κάθε περίπτωση συμβάντος. Απλά, υποθέτω ότι, σε κάθε συμβάν,όπου χρειάζεται, θα πρέπει να προστεθεί επιπλέον κώδικας ο οποίος να ακυρώνει τη λειτουργία της τρέχουσας VBA του συμβάντος, εφόσον η βάση λειτουργεί με δικαιώματα χρήστη1. Καλή συνέχεια... Τελευταία επεξεργασία από το χρήστη dimitrisp : 29-07-20 στις 12:29. |
#7
| |||
| |||
Καλησπέρα σε όλοι την παρέα. Φιλέ Τάσο οι «παρατηρήσεις» σου είναι ουσιαστικές και πάντα πολλά βήματα μπροστά. Φιλέ Δημήτρη αυτό που λες: Το ζητούμενο είναι ανοίγοντας τη βάση ως χρήστης1, ας πούμε, όλες οι φόρμες που εμπεριέχονται στην τρέχουσα βάση να είναι "ReadOnly"! Δεν είναι και τόσο εύκολο να πραγματοποιηθεί γιατί οι φόρμες είναι αντικείμενα με ιδιότητες και οι φόρμες έχουν αλλά αντικείμενα απάνω με διάφορες ιδιότητες (Τάσος). Μια φόρμα την ανοίγεις μέσω ενός συμβάντος το πώς θα ανοίξει η φόρμα το καθορίζεις από τις ιδιότητες της κάθε φόρμας ή μέσω κώδικα που και εκεί πάλι καθορίζεις τις ιδιότητες της φόρμας κατά το άνοιγμα της. Ο παρακάτω κώδικας ανοίγει οποιαδήποτε φόρμα που θα πάρει σαν ορμιά aForm και ανάλογα με το UserGroup που ανήκει ο χρήστης θα ανοίξει την φόρμα κανονικά ή ReadOnly. Function OpenForm(ByVal aForm As Form, ByVal UserGroup As Integer) If UserGroup = 1 Then DoCmd.OpenForm aForm.Name, acNormal ElseIf UserGroup = 2 Then DoCmd.OpenForm aForm.Name, acNormal, , , acFormReadOnly End If End Function Έτσι λοιπόν σε κάθε συμβάν που έχεις και ανοίγεις κάποια φόρμα στην βάση σου θα πρέπει να καλείς την συνάρτηση «OpenForm» με ορίσματα την φόρμα που θέλεις να ανοίξεις «Form_frmUser» και «UserGroup». Τώρα μια σκέψη όσο αναφορά τις παρατηρήσεις του Τάσου είναι να διαβάσεις τα αντικείμενα που έχει απάνω η φόρμα και να τα κάνεις ανενεργά όταν αυτή ανοίγει μόνο για ανάγνωση. Αυτό βέβαια θέλει μελέτη δεν είναι και τόσο απλό. Βέβαια μπορείς να κάνεις και αυτό που σου πρότεινε παραπάνω ο Τάσος να έχεις διπλές (με έτοιμες τις ιδιότητες ReadOnly) φόρμες και ανάλογα τον χρήστη να ανοίγεις την φόρμα που πρέπει κάθε φορά. Ευχαριστώ. Τελευταία επεξεργασία από το χρήστη vraxnakisg : 29-07-20 στις 21:04. |
#8
| |||
| |||
Γεια σας Γιώργο, οι σαφείς παρατηρήσεις σου καθώς και οι ακριβείς επισημάνσεις σου, σχετικά με την επίλυση του ζητούμενου, θεωρώ ότι έγιναν κατανοητές (;) εκ μέρους μου. Θα προσπαθήσω να τις εφαρμόσω και θα επανέλθω... Σε κάθε περίπτωση, εκφράζω θερμές ευχαριστίες τόσο σε εσένα αλλά και στον Τάσο για την ανεκτίμητη βοήθεια που μας προσφέρετε! Να είστε πάντα καλά. Καλή συνέχεια... |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
να ανοίγει μια συγκεκριμένη φόρμα απο ένα άλλο αρχείο της Access | pakos | Access - Ερωτήσεις / Απαντήσεις | 1 | 14-10-17 20:09 |
[ Πίνακες ] Αντιγραφή πινάκων από τρέχουσα βάση σε νέα βάση | apostolos | Access - Ερωτήσεις / Απαντήσεις | 11 | 04-03-16 22:43 |
[Excel07] Error κατά το άνοιγμα "...δεν είναι δυνατή η ανάγνωση.." | jockey17 | Excel - Ερωτήσεις / Απαντήσεις | 2 | 23-05-14 16:15 |
Μεταφορές πινάκων από βάση σε βάση | parara | Access - Ερωτήσεις / Απαντήσεις | 8 | 18-04-14 14:14 |
Report με μονο ενα record | koxcygr | Access - Ερωτήσεις / Απαντήσεις | 2 | 31-12-09 10:58 |
Η ώρα είναι 07:58.