- Preventing Errors by Validating Data
- Using Controls to Limit Data Entry Choices
- Entering Data with ActiveX Controls
- Collecting Form Data via Email
- From Here
Entering Data with ActiveX Controls
The controls you see in the Design tab's Controls group will likely satisfy most of your form needs. However, you might have noticed that some controls that are commonly seen in Windows dialog boxes aren't available in the Controls group. For example, many Windows programs use spin buttons for entering numeric values, whereas others use a "calendar" control to enable users to choose dates via the mouse.
These and many other controls are available on your system as separate components that either come with the default Windows installation or are added to the system when you install Microsoft Office. (Other programs might also add their own controls to the system.) There are dozens of these so-called ActiveX controls, although only a few are suitable to be used on an Access form. The next three sections show you how to use three of them: a spin button, a scrollbar, and a calendar control.
Entering Numbers Using a Spin Button
A spin button comes with up and down arrows that the users can click to increment or decrement a value. Most spin buttons have a text box control beside them to show the current value. In most cases, the text box also gives users the choice of entering the number directly or selecting the number by using the spin button arrows. However, as you'll see, to use a spin button on an Access form, you can't make the text box editable, so the users must use the spin button arrows. Therefore, this control is useful only for fields that require relatively small numbers (to minimize the amount of clicking the users must do to get the required value).
Here are the steps required to add a spin button and companion text box to a form:
- In the Design tab's Controls group, click the Insert ActiveX Control button. Access displays the Insert ActiveX Control dialog box.
- In the Select an ActiveX Control list, click Microsoft Forms 2.0 SpinButton and then click OK.
- Adjust the dimensions of the control as needed. Note that if you make the control taller than it is wide, you get up and down arrows; if you make the control wider than it is tall, you get left and right arrows.
- In the Design tab's Controls group, click the Text Box button.
- Draw the text box on the form beside the spin button. Access adds the text box and an associated label. Make a note of the text box name because you need it later in these steps.
- Edit the text box label, as necessary.
- Click the spin button and choose Design, Property Sheet to display the control's property sheet.
- In the Data tab, use the Control Source property to specify the field in which you want the spin button value stored.
- In the Other tab, customize the spin button using the following properties:
- Min—Sets the minimum value of the spin button.
- Max—Sets the maximum value of the spin button.
- SmallChange—Sets the amount that the spin button value changes when the users click one of the arrows.
- Ensure that the text box gets updated with the new spin button value whenever the users click an arrow. To do this, right-click the spin button, click Build Event, click Code Builder, and then click OK. Access opens the Visual Basic Editor and adds a stub for the Updated event, which you can delete. In the procedure list (the one on the right at the top of the module), click Change.
- Inside the Change procedure, type the following statement, where TextBox is the name of the text box you added in step 6 (see Figure 3.9):
TextBox.SetFocus
Figure 3.9 Use a simple Visual Basic for Applications statement to keep the text box updated with the current spin button value.
- Choose File, Close and Return to Microsoft Office Access (or press Alt+Q or Alt+F11).
- Use the Property Sheet pane's drop-down list to choose the text box.
- In the Data tab, set the text box value equal to the spin button value by using the Control Source to add the following expression (where SpinButton is the name of the spin button control):
=SpinButton
- Close the property sheet.
Figure 3.10 shows a form with a spin button and associated text box.
Figure 3.10 When you click the spin button arrows, the value displayed inside the text box changes accordingly.
Entering Numbers Using a Scrollbar
Scrollbars are normally used to navigate windows, but by themselves you can use them to enter values between a predefined maximum and minimum. In this context, they are very similar to spin buttons, so the procedure for adding them to your form is more or less the same:
- In the Design tab's Controls group, click the Insert ActiveX Control button. Access displays the Insert ActiveX Control dialog box.
- In the Select an ActiveX Control list, click Microsoft Forms 2.0 ScrollBar and then click OK.
- Adjust the dimensions of the control as needed. Note that if you make the control taller than it is wide, you get a vertical scrollbar; if you make the control wider than it is tall, you get a horizontal scrollbar.
- In the Design tab's Controls group, click the Text Box button, draw the text box on the form beside the scrollbar, and edit the label. Remember to make note of the text box name.
- Click the scrollbar and choose Design, Property Sheet to display the control's property sheet.
- In the Data tab, use the Control Source property to specify the field in which you want the scrollbar value stored.
- In the Other tab, customize the scrollbar using the following properties:
- Min—Sets the minimum value of the scrollbar.
- Max—Sets the maximum value of the scrollbar.
- SmallChange—Sets the amount that the scrollbar value changes when the users click one of the scroll arrows.
- LargeChange—Sets the amount that the scrollbar value changes when the users click between the scroll box and one of the scroll arrows.
- Right-click the scrollbar, click Build Event, click Code Builder, and then click OK. Access opens the Visual Basic Editor and adds a stub for the Updated event, which you can delete. In the procedure list (the one on the right at the top of the module), click Change.
- Inside the Change procedure, type the following statement, where
TextBox
is name of the text box you added in step 4:
TextBox.SetFocus
- Choose File, Close and Return to Microsoft Office Access (or press Alt+Q or Alt+F11).
- Use the property sheet drop-down list to choose the text box.
- In the Data tab, set the text box value equal to the scrollbar value by using the Control Source property to add the following expression (where ScrollBar is the name of the scrollbar control):
=ScrollBar
- Close the property sheet.
Figure 3.11 shows a form with a scrollbar and associated text box.
Figure 3.11 When you click the scrollbar arrows or drag the scroll box, the value displayed inside the text box changes accordingly.
Entering Dates Using a Calendar
Entering dates can be problematic because users might not use the proper format. For example, they might reverse the month and day, they might use an unrecognizable month abbreviation, they might leave out a date separator, and so on. To avoid these common data entry scenarios, you can add a calendar control to your form. The users enter a date by selecting the month and year and then just clicking the day of the month.
Follow these steps to add a calendar control to your form:
- In the Design tab's Controls group, click the Insert ActiveX Control button. Access displays the Insert ActiveX Control dialog box.
- In the Select an ActiveX Control list, click Calendar Control 12.0 and then click OK.
- Adjust the size and position of the control to ensure that the calendar is displayed properly.
- Click the calendar and choose Design, Property Sheet to display the control's property sheet.
- In the Data tab, use the Control Source property to specify the date field in which you want the calendar value stored.
- In the Other tab, use properties such as DayFontColor and GridCellEffect to format the calendar.
- Close the property sheet.
Figure 3.12 shows a form with a calendar control added.
Figure 3.12 With the calendar control, use the drop-down lists to select a month and year and then click the date you want.