Tracking table in Access

Posted on 2000-04-24
Last Modified: 2010-05-02
Ok here is my question:
I have an access application that I use to enter sensitive information. If somebody makes a change to one record I want to be able to track the field that was changed the user name of the person who logged on to my database and the change made. I want to create a table that gets this information thru vb code or queries. Please send me sample code assuming a simple record with name, age, DOB fields and the mechanism to track changes to this record. Remember I need to know who did it, when, what fields were changed and what were the old and new values for those fields. thanks
Question by:jorgito4
  • 3
  • 2
LVL 12

Expert Comment

ID: 2745141
I did this by adding a memo field to the data record. When you populate the fields place the *same* data into the .Tag of the control as you put in the .Text. Then at save time you watch to see if .Text=.Tag, if they don't, then you know that particular field has been updated. I then just add the info to the start of the memo field with something like:

DIM obj as Object
for each obj in Form.Controls
if typename(obj) = "TextBox" then
  if obj.text <> obj.tag then
    RS!memo = "Data Field" & & "changed from: " & obj.tag & " to: " & obj.text & " by: " & user & " on: " & format(now, "hh:mm dd-mmm-yy") & rs!memo
next obj

This is off the top of my head, but I have written this (the code is at home) and it DOES work.


Author Comment

ID: 2748429
I believe you understood what i am ying to do very well but i did not quite get the idea. Please clarify when you say:
1)"adding a memo field to the data record"
you mean adding a field to let's say the customer table that i am trying to track.
2)"populate the fields" means adding a new member right?
3)*same* what does this mean?
4)".Tag of the control as you put in the .Text" what control?, are you talking about the same text box where i am entering data?
5)Do you place the code that you gave me on the general section of the code window?
LVL 12

Accepted Solution

mark2150 earned 50 total points
ID: 2748674
1) Yes
2) When you fill your screen with data from the record you do:

Text1.Text = Trim("" & RS!Fieldname)
Text1.Tag = Text1.Text

3) Same means *same*
4) Yes
5) No, code goes in click event of [Update] button


Author Comment

ID: 2751352
Very helpful and knowledgeable. Excellent help.
Thank you Mark.
LVL 12

Expert Comment

ID: 2751404
Thank you for the lovely points. They look really nice over the mantle. (grin)


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now