Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   log file στην access (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/457-log-file-stin-access.html)

giorgos_ad 26-02-10 14:09

log file στην access
 
Πολλά συγχαρητήρια στου δημιουργούς του forum!! Είναι φοβερό!!
Θα ήθελα να μάθω αν είναι δυνατόν σε μία βάση που έχω φτιάξει (access 2003) με user permissions και login η καταγραφή των ενεργειών των χρηστών. Δηλαδή αν κάποιος επεξεργάζεται μια εγγραφή ή δημιουργείται μια νέα εγγραφή, αυτό να καταχωρείται ανάλογα στο αρχείο με το username του χρήστη

Γιώργος

kon73 26-02-10 17:48

Καλησπέρα Γιώργο,

Καλώς ήρθες στο Forum / Κοινότητας μας.

Η καταγραφή των ενεργειών των χρηστών φυσικά και επιτυγχάνεται. Η καταγραφή θα γίνεται εφόσον ορίσεις SQL Insert Into εντολές στα εξής Events της εκάστοτε Φόρμας με παραμέτρους το UserName των χρηστών. Ωστόσο αυτό που έχω να αναφέρω είναι αν είναι adp η εφαρμογή σου να δημιουργήσεις καλύτερα ένα SQL Procedure για να εκτελεί και πιο δομημένα αλλά και πιο γρήγορα τις εντολές.

AfterInsert για την σύλληψη της νέας εγγραφής
OnChange για τις αλλαγές
AfterDeleteConfirmation για την διαγραφή

Και φυσικά αν ενδιαφέρεσαι και για τροποποιήσεις συγκεκριμένων πεδίων τότε στο OnChange του κάθε πεδίου.

Αναφέρομαι κάπως γενικά γιατί θέλει έναν δομημένο προγραμματισμό όλο αυτό το Project. Προσωπικά όμως το θέμα αυτό έγινε εφικτό και εφαρμόσιμο σε μία εφαρμογή που έχω δημιουργήσει όποτε σου διαβεβαιώνω πως είναι υλοποιήσιμη αυτή η διαδικασία.

giorgos_ad 26-02-10 18:13

Σε ευχαριστώ πολύ kon73 για την γρήγορη απαντησή σου. Δεν μπορώ να καταλάβω πως είναι δυνατόν με SQL Procedure η καταγραφή των ενεργειών. Τι θέλω να πω. Το log αρχειο θα καταγράψει για παράδειγμα [12-3-2010 12:52μμ George changed Name(field) from "Γιώργος" to "Γεώργιος"] . Κάτι τέτοιο εννοείς γιατί εγώ αυτό εννοούσα με το ερώτημα μου. Και αν εννοείς αυτό πως δηλώνω την "ενέργεια" (changed, added or deleted)

editolis 26-02-10 18:49

1 Συνημμένο(α)
Αγαπητε φιλε Γιωργο,

Σου επισυναπτω μια βαση δεδομενων απο το
ΙΝΤΕΡΝΕΤ η οποια κανει αυτο που ζητας...

giorgos_ad 28-02-10 09:53

Σε ευχαριστώ πολυ editolis!!! Ηταν αυτό ακριβώς που χρειαζόμουν!!!

kon73 28-02-10 10:37

Καλημέρα,

Συγνώμη για την καθυστερημένη απάντηση μου.

Λοιπόν βλέποντας την βάση που ανάρτησε ο editolis παρατηρώ πως γίνεται χρήση Recordsets και σύλληψη Events τα οποία βρίσκονται στο BeforeInsert, BeforeUpdate, και Form Delete.

Κατ'αρχής έχω μια διαφορετική προσέγγιση στην χρήση Recordsets και SQL Strings καθότι αποδεδειγμένα η SQL είναι πολύ γρηγορότερη.

Κατά δεύτερο λόγο στα Events που γίνονται οι συλλήψεις των ενεργειών των χρηστών δεν είναι εύστοχες γιατί
1. Γίνεται σύλληψη όταν πατηθεί το Delete άσχετα αν τελικά διαγραφεί η εγγραφή ή όχι
2. Γίνεται σύλληψη όταν πρόκειται να δημιουργηθεί εγγραφή και όχι αν τελικά οριστικά δημιουργήθηκε η εγγραφή. Ο χρήσης μπορεί απλά να πατήσει ESC και να γίνει αναίρεση της νέας εγγραφής ωστόσο η ενέργεια καταγράφηκε.
3. Γίνεται σύλληψη πριν γίνει η αλλαγή ενώ πρέπει να γίνει καταγραφή ενέργειας εφόσον γίνει η αλλαγή.

Κλείνοντας φυσικά δεν κρίνω τον φίλο μας Τόλη καθότι η εφαρμογή είναι απλά μια κατασκευασμένη εφαρμογή τρίτων που δημοσιεύτηκε στο διαδίκτυο ωστόσο κρίνω το κατά πόσο είναι σωστή και πότε να καταγράφουμε τις κινήσεις των χρηστών.

Όσο για τις εγγραφές SQL απλά εδώ έχουμε εγγραφές σε έναν πίνακα που απλά εισάγονται στον πίνακα με Insert Into.


Η ώρα είναι 02:29.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2