Skip to Content
Course content

5.2. Event-Driven Programming in Access: Form Events

Event-driven programming in Microsoft Access allows developers to create interactive applications that respond to user actions, such as clicking a button, entering data in a field, or selecting a value from a combo box. Form events are key components of this programming model, and they allow the user interface (UI) of an Access application to respond dynamically to user input.

In this section, we'll focus on form events and how they are used in Access VBA (Visual Basic for Applications) to enhance the interactivity and functionality of forms.

1. What Are Form Events?

Form events are specific actions or changes that occur on a form, such as when a user clicks a button, changes a field value, or opens or closes the form. These events can trigger VBA code to perform certain actions in response. Events can be tied to various controls on a form, like textboxes, buttons, combo boxes, and the form itself.

2. Common Form Events

Here are some of the most commonly used form events in Access:

a. Form Load Event

  • Trigger: Occurs when the form is first opened or loaded.
  • Use: You can use this event to initialize data, set default values, or configure the form's appearance before it’s displayed to the user.
Private Sub Form_Load()
    ' Initialize controls or load data
    Me.txtEmployeeName.Value = "John Doe"
End Sub

b. Form Open Event

  • Trigger: Occurs when the form is opened, but before the form is actually displayed.
  • Use: This event can be used to set up conditions or check data before the form is shown to the user.
Private Sub Form_Open(Cancel As Integer)
    If MsgBox("Do you want to open this form?", vbYesNo) = vbNo Then
        Cancel = True ' Prevent form from opening
    End If
End Sub

c. Form Close Event

  • Trigger: Occurs when the form is closed (either by the user or programmatically).
  • Use: You can use this event to perform cleanup tasks, save data, or ask the user for confirmation before closing the form.
Private Sub Form_Close()
    MsgBox "Form is closing!"
End Sub

d. Form Before Insert Event

  • Trigger: Occurs before a new record is inserted into the form’s underlying table.
  • Use: This is ideal for setting default values or checking data before it's saved.
Private Sub Form_BeforeInsert(Cancel As Integer)
    If Me.txtEmployeeName.Value = "" Then
        MsgBox "Please enter the employee name."
        Cancel = True ' Cancel the insert action
    End If
End Sub

e. Form After Update Event

  • Trigger: Occurs after a record has been updated.
  • Use: This is useful for refreshing data or performing actions after a record is modified.
Private Sub Form_AfterUpdate()
    MsgBox "Record updated successfully!"
End Sub

f. Form Current Event

  • Trigger: Occurs when the form displays or when the user navigates to a new record.
  • Use: This event is ideal for changing the appearance of the form or updating information based on the current record.
Private Sub Form_Current()
    If Me.txtEmployeeName.Value = "John Doe" Then
        Me.txtEmployeeName.BackColor = vbYellow ' Highlight record
    End If
End Sub

3. Control-Specific Events

Each control on a form (e.g., buttons, textboxes, combo boxes) has its own set of events. For instance:

a. Button Click Event

  • Trigger: Occurs when the user clicks a button.
  • Use: Typically used for performing actions like saving data, running a query, or opening another form.
Private Sub cmdSave_Click()
    DoCmd.Save
    MsgBox "Data saved successfully!"
End Sub

b. TextBox After Update Event

  • Trigger: Occurs when the user changes the value in a text box and then moves to another control (such as pressing the Tab key or clicking another field).
  • Use: This event is useful for validating input or updating other fields based on the textbox value.
Private Sub txtEmployeeID_AfterUpdate()
    If Not IsNumeric(Me.txtEmployeeID.Value) Then
        MsgBox "Employee ID must be numeric."
    End If
End Sub

c. ComboBox Change Event

  • Trigger: Occurs when the selected value in a combo box is changed.
  • Use: This event can be used to dynamically update other controls or fields based on the selection.
Private Sub cboDepartment_Change()
    MsgBox "Department changed to " & Me.cboDepartment.Value
End Sub

d. Checkbox Click Event

  • Trigger: Occurs when a user clicks on a checkbox (either checking or unchecking).
  • Use: You can use this event to perform conditional actions based on whether the checkbox is checked or unchecked.
Private Sub chkActive_Click()
    If Me.chkActive.Value = True Then
        MsgBox "Employee is active."
    Else
        MsgBox "Employee is inactive."
    End Sub

4. How to Handle Events in VBA

Handling events in VBA involves associating specific actions with the event handlers. When an event occurs (like a button click or text box change), the corresponding VBA code is executed.

Example: Handling a Button Click Event

  1. Open the form in Design View.
  2. Add a Command Button control to the form.
  3. Right-click the button and select Build Event.
  4. Choose the On Click event to open the VBA editor.
  5. In the VBA editor, write the code to handle the button click event:
Private Sub cmdSubmit_Click()
    MsgBox "Form submitted successfully!"
End Sub

Explanation:

  • The cmdSubmit_Click procedure is triggered when the user clicks the "Submit" button.
  • The message box will appear as a confirmation.

5. Using Event Procedures for Data Validation

Event-driven programming can be especially useful for data validation in Access forms. By using form events like Before Update or After Update, you can ensure that data is correct before it is saved to the database.

Example: Data Validation Using the Before Update Event

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If IsNull(Me.txtEmployeeName) Or Me.txtEmployeeName = "" Then
        MsgBox "Employee Name is required!"
        Cancel = True ' Prevent the form from saving
    End If
End Sub

Explanation:

  • This code checks if the txtEmployeeName field is empty or null before allowing the form to save the data.
  • If the field is empty, a message is shown, and the Cancel = True statement prevents the data from being saved.

6. Conclusion

Form events in Access VBA provide a powerful way to create interactive, dynamic applications. By leveraging these events, you can build applications that respond to user actions, validate input, and perform a wide range of tasks, from data entry to form navigation. Mastering form events will enhance your ability to develop user-friendly and efficient applications in Access.

Commenting is not enabled on this course.