Access Form Combo Box and save selected value

This tutorial explains how to use Combo Box in Access Form and save selected value for use in another Form or Report.

You may also want to read:

Access Combo Box value depends on another Combo Box

Access Form Combo Box

Combo Box is also known as Dropdown Box, which allows users to select data from a list by clicking on the down arrow button. The advantage of Combo Box is that you can have control over what users will input, this will prevent unexpected input and typo.

combo_box

Because Combo Box receives user input, Combo Box should be used in Access Form. If you try to open a Access Report based on search criteria, use Combo Box in Form and pass the Combo Box selection to Report Control Source, do not directly place a Combo Box in Report, because Report is used to display result.

Create Access Form Combo Box

To insert a Combo Box in a Form, navigate to Design tab and select Combo Box and drag down to the Form.

combo_box_01

Combo Box Property – Row Source / Row Source Type

Navigate to Combo Box Properties > Data > Row Source, this is where you set the Combo Box values.

combo_box_03

Select one of the three Row Source Type depending on where your source come from.

1) Row Source Type = Table/Query

You can select a Table Name, Query Name, or build a new Query in Query Builder by clicking on the … button on the right. The Table/Query can be different from the Control Source of the Form.

– If you directly select a Table name/Query Name that contains multiple fields as Row Source, only the first field is used in Combo Box list. To display more than one fields in Combo Box, navigate to the Combo Box Property > Format > Column Count

Below is an example of showing Column Count is set to  2

combo_box_05

For multiple columns, you may also need to set the Column Width Property (Combo Box Property > Format > Column Width), your input should be separated by semi column for each column width.

The below example shows Column Width = 1;1   (or 1cm;1cm)
combo_box_06

Set Column Heads Property to Yes to display field headers (Combo Box Property > Format > Column Headers)

combo_box_07

-If the list you select contains duplicate values, write a SQL statement with DISTINCT keyword to remove duplicates .

For example, SELECT DISTINCT [EmplID] FROM [JOB_Tbl]

– If you want to sort Combox Data, use Query builder to sort or directly type SQL command

For example, SELECT DISTINCT [EmplID] FROM [JOB_Tbl] SORT BY [EmplID]

2) Row Source Type = Value List

If you select Value List in Row Source Type, you will  see a prompt in Row Source to define the list of Combo Box items, then it will convert this table to a string expression.

combo_box_04

3) Row Source Type = Field List

Field List means the Field Name for the table or query. If you choose Field List in Row Source Type, and then select a Table name, you can choose the field name in Combo Box.

At this point, the basic setup of Combo Box is complete.

Form Property – Allow Edit

Allow Edit Property allows you edit data in Form. By default, the value is set to Yes, you must set to Yes in order for Combo Box to work.

Navigate to Form Properties > Data > Allow Edit, make sure the parameter is set to Yes

combo_box_02

Save Combo Box value – using Control Source Property

The Control Source of Combo Box and List Box is different from that in other Controls. In other Controls, Control Source is how you want to Control (Text Box for example) to display value and save value.

Since the display value of Combo Box come from Row Source, Control Source only serves the purpose of save value.

combo_box_08

For example, the Row Source displays Employee Name (May, John, Peter), and there are three records in the Form Record Source.

For each Form Record, if you select the Employee Name in Combo Box, nothing will save.

If you bound the Combo Box to a field in Form Record Source, say a field called “Name”, the selected Combo Box value will save to that Record Source automatically. To do this, select “Name” in Control Source of Combo Box.

Save Combo Box value – using variable

Events for Combo Box

You can choose one of the below Events to trigger saving action of the selected Combo Box value

– Create a submit Button in Form to trigger a Click Event

– Use AfterUpdate Event for the Combo Box

– Use Change Event for Combo Box (not recommended)

AfterUpdate Event is triggered when you select a value from Combo Box.

Change Event is triggered whenever the value is different. If you directly type something in Combo Box, the Event is trigger for every character you type in.

Store Combo Box value as Global variable

To save Combo Box value as variable for later use,  define a variable as Global variable in Module.

Press ALT+F11 > insert a Module > copy and paste the below code. This will declare a global variable emplID_global.

Public emplID_global

In the VBE environment, double click on the Form containing the Combo Box, save the Combo Box value as emplID_global.

If Not IsNull(Me.Combo_emplID) Then
   emplID_global = Me.Combo_emplID
End If

Now you have saved the Combo Box value, and you can use the variable emplID_global in any Form or Module.

In the Report or Form that you want to use that variable, create a SQL string in VBA that uses this variable, then use the SQL as Record Source of the Report or Form.

You may find a detailed example in my other article below.

Return Access Form input to Access Report or Form or Query

Outbound References

https://support.office.com/en-gb/article/Create-a-list-of-choices-by-using-a-list-box-or-combo-box-70abf4a9-0439-4885-9099-b9fa83517603?ui=en-US&rs=en-GB&ad=GB&fromAR=1

 

 

Wyman W
Wyman is a Human Resources professional based in Hong Kong, specialized in business analysis, project management, data transformation with Access and Excel.

He is also a:
- Microsoft Most Valuable Professional (Excel)
- Microsoft Community Contributor
- Microsoft Office Specialist in Access / Excel
- Microsoft Specialist in MS Project
- Microsoft Technical Associate
- Microsoft Certified Professional
- IBM SPSS Specialist

Leave a Reply

Your email address will not be published. Required fields are marked *