
29-07-20, 14:37
|
| Super Moderator Όνομα: ΓΙΩΡΓΟΣ Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 14-01-2014
Μηνύματα: 234
| |
Καλησπέρα σε όλοι την παρέα.
Φιλέ Τάσο οι «παρατηρήσεις» σου είναι ουσιαστικές και πάντα πολλά βήματα μπροστά.
Φιλέ Δημήτρη αυτό που λες: Το ζητούμενο είναι ανοίγοντας τη βάση ως χρήστης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 στις 20:04.
|