Home Privacy Policy Feedback Link to us Site Map

Access: Update a text box to a value when a new record is created in Access 2003/XP/2000/97


Question:  In an Access 2003/XP/2000/97 form, I want to check when the user adds a new record (is there any relevant event?) so that I can load a default date value in a text box. I tried to go to a new record each time the form was loaded, but that resulted in numerous unwanted records. How can I avoid this?

Answer:  On the Form object, there should be a "Before Insert" event. You should be able to place code there to set the value of the text box.

Download version in Access 2000 (example as demonstrated below)

Let's take a look at an example. Often times, it is useful to know when a record has been created in your Access database. So we've created a Customers table that contains a field called Create_Date. We will use this field to store the exact date and time of when the record was created.

This is an example of a form that we've created. There is code on the "Before Insert" event of this form to update the field called Create_Date. When you are viewing this form in "form mode", you can not see the field called Create_Date.

However, if you view this form in Design View, you will notice that there is, in fact, a field called Create_Date. This field has been set to "not visible" so that the user can not interfere in the "Before Insert" event code that will run.


When a new record is inserted into the Customers table, the Create_Date field will be updated with the current system date/time.

The VBA code is quite simple:

Private Sub Form_BeforeInsert(Cancel As Integer)

    'Set the Create_Date field in the Customers table to the current system
    'date when a new record is created
    Create_Date = Now()

End Sub