By assigning new values to controls (control: A graphical user interface object, such as a text box, check box, scroll bar, or command button, that lets users control the program. You use controls to display data or choices, perform an action, or make the user interface easier to read.) and properties in response to events (event: An action recognized by an object, such as a mouse click or key press, for which you can define a response. An event can be caused by a user action or a Visual Basic statement, or it can be triggered by the system.) that occur on a form or report, you can make the objects you've created work together so that they're easier to use.
Here are some common situations that call for setting values with a macro (macro: An action or set of actions that you can use to automate tasks.) or an event procedure (event procedure: A procedure that is automatically executed in response to an event initiated by the user or program code, or that is triggered by the system.):
Setting the value of a control on one form equal to the value of a control on another form
For example, you can put an Open Orders command button on a Customers form that opens an Orders form and automatically fills in billing information from the Customers form.

Clicking the Open Orders button opens the Orders form with the billing information from the Customers form.
Updating the value of a control that's dependent on the value of another control
For example, you might have a PaymentDate control whose default value is the ship date (the value of the ShipDate control). You can use a macro or an event procedure to automatically reset the value of the PaymentDate control whenever the value in the ShipDate control changes.
Setting a form or control property in response to a selection or other event
You can use a macro or an event procedure to set a form or control property in order to:
- Hide or display a control based on the value of another control. For example, you might want the DateDue control on an Orders form to be hidden if the order is already paid for (if the Paid control's value is Yes) or visible if payment is still due.
- Disable or lock a control based on the value of another control. For example, you can disable a DriversLicense control if the value of an Age control is below the minimum age for a driver's license.
- Display different sets of records depending on a selection. For example, you can control which records are displayed in a Customers form, depending on which option is selected in a Customer Type option group.