Καταγραφή αλλαγών στην access

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
dimhar
Δημοσιεύσεις: 1
Εγγραφή: 03 Ιουν 2008 18:05

Καταγραφή αλλαγών στην access

Δημοσίευση από dimhar » 03 Ιουν 2008 18:14

Καλησπέρα
Θα ήθελα αν γνωρίζει κανένας να μπυ πεί αν υπάρχει τρόπος καταγραφής (ημερομηνία τροποίησης,πεδίο τροποποίησης,τιμή πριν την αλλαγή τιμή μετά)σε μία βάση access(logs).
Αυτό να γίνεται έιτε σε έναν πίνακα ή σε κάποιο αρχείο txt.
Ευχαριστώ

Άβαταρ μέλους
kon73
Script Master
Δημοσιεύσεις: 224
Εγγραφή: 13 Απρ 2008 23:47
Επικοινωνία:

Καταγραφή αλλαγών στην access

Δημοσίευση από kon73 » 04 Ιουν 2008 00:20

Φίλε dimhar,

Καλησπέρα,

Λοιπόν αυτό που ζητάς είναι σχετικά εύκολο. Όλα γίνονται με το Event Dirty και το Event Before Update της Φόρμας,

Σου παραθέτω κώδικα και στον εξηγώ. Θα χρειαστείς πεδία στην Φόρμα σου ChangeControl να είναι τύπου Text, στο οποίο αποθηκεύονται ποια πεδία άλλαξαν, Me.Controls.Item(i).OldValue κρατά την παλιά τιμή και μπορείς και αυτό να το δώσεις σε κάποιο πεδίο Φόρμας, Η ημερομηνία αλλαγής γίνεται στο Dirty όχι πως δεν μπορείς να το βάλεις και στο BeforeUpdate. Οι Πληροφορίες που ζητάς (Ημερομηνία αλλαγής, Πεδία που αλλάξαν τιμή, παλιά τιμή κλπ) δύνονται με ενημέρωση απλά πεδίων της φόρμας η οποία φόρμα βλέπει σε έναν πίνακα. Μπορούμε με SQL να κάνουμε Insert Into σε άλλο πίνακα που κρατά το ιστορικό του.

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim i, NumControls As Integer
NumControls = Me.Controls.Count - 1
For i = 0 To NumControls
If Me.Controls.Item(i).ControlType = acTextBox Then
If Me.Controls.Item(i).Value <> Me.Controls.Item(i).OldValue Then
Me.ChangeControl = Me.ChangeControl.Value & "-" & Me.Controls.Item(i).Name
End If
End If
i = i + 1
Next
End Sub

Private Sub Form_Dirty(Cancel As Integer)
Me.DateChange = Now
End Sub

Αν χρειάζεσαι περαιτέρω βοήθεια μη διστάξεις να ρωτήσεις. Αν μένεις Θεσσαλονίκη μπορούμε να δούμε και από κοντά την βάση σου.

Φιλικά
kon73
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εικόνα

Άβαταρ μέλους
kon73
Script Master
Δημοσιεύσεις: 224
Εγγραφή: 13 Απρ 2008 23:47
Επικοινωνία:

Καταγραφή αλλαγών στην access

Δημοσίευση από kon73 » 05 Ιουν 2008 01:16

Σε συνέχεια της απάντησής μου παραθέτω και ένα Link που παραπέμπει στο site μου όπου με αφορμή το ερώτημά σου στήνω ένα Sample mdb αρχείο. Στο site υπάρχουν οδηγίες γενικές για το στήσιμο ενός Ιστορικού αλλαγών των εγγραφών στην Access.

To Link είναι :

http://access.terapad.com/index.cfm?fa= ... eId=205267

Φιλικά
Kon73
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εικόνα

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες