Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
When building applications in Microsoft Access, the way you design your forms plays a big role in how users interact with data. Access offers different form control methods, such as Single Bound Forms, Continuous Bound Forms, and Unbound Form Controls—each with its own strengths and limitations. Bound forms are quick to set up and automatically save data, but this convenience can sometimes reduce control and lead to unwanted or incomplete records. In this article, we’ll look at all form control methods in MS Access and explain, in a simple and practical way, why unbound form controls offer better flexibility, give you more control over data entry, and create a smoother, more user-friendly experience.
Practically, we will create an Employee table that includes the fields listed below. For adding a new employee, a bound form can be used, which can be created through the Form Wizard by selecting the table and required fields.
| Field Name | Data Type | Purpose |
|---|---|---|
EmpID | AutoNumber (Primary Key) | Unique ID for the log entry. |
EmpStatus | Text | Status of the Employee either Active or Inactive |
EmpDepartment | Text | Department (e,g,. Manager, Operations, Lahor, Accounts) |
EmpJoinDate | Date/Time | Joining date of the employee |
EmpFirstNam | Text | First Name of the Employee |
EmpLastName | Text | Last Name of the Employee |
EmpGender | Text | Employee Gender (Male, Female) |
EmpAge | Number | Age of the Employee in Number of Years |
EmpContact | Text | Contact Number |
EmpAddress | Text | Address of the Employee |
EmpDutyHouts | Number | Duty Hours as per JD |
EmpBasicSalary | Currency | Basic or sometimes called fixed salary |
EmpAllowance | Currency | Allowances other than the basic salary |
EmpTotalSalary | Calculated | Total calculated salary = Basic + Allowance |
A bound form control is a form element such as a text box, combo box, or checkbox that is directly connected to a field in a table or query. Because of this connection, the control automatically displays data when the form opens, and any changes made by the user are saved back to the database without needing extra code. The form itself relies on a record source, which is usually a table or query, to determine what data is loaded and shown in the form.
Bound forms can show data in different layouts:
Characteristics

Pros
Cons
A Continuous Bound Form displays multiple records in a list-like way:
This method is similar to a single employee addition bound form; the only difference is the form properties, which will be set to Continuous so that a list of records can be displayed.

Characteristics
Pros
An unbound control is not tied directly to any field in a table or query. It may be used for labels, calculated values, navigation (buttons), or controls that are filled and saved using code.
An unbound form has no Record Source, meaning:

In the unbound form control process for adding a new employee, we will create a new form that is not linked to any table.
Private Sub Command27_Click()
'This is unbound form and unbound textboxes code
'First of all, we will check the empty mandatory textboxes and return a msg
If IsNull(Me.txtempStatus) = True Or IsNull(Me.txtempDepartment) = True Or IsNull(Me.txtempJoinDate) = True Or _
IsNull(Me.txtempFirstName) = True Or IsNull(Me.txtempDutyHours) = True Or IsNull(Me.txtempBasicSalary) = True Then
MsgBox "Please fill mandatory fields first.", vbExclamation, "Empty Fields"
Exit Sub
Else
Set rstNE = CurrentDb.OpenRecordset("tbl_employee", dbOpenDynaset, dbSeeChanges)
With rstNE
.AddNew
.Fields("empstatus") = Me.txtempStatus
.Fields("empDepartment") = Me.txtempDepartment
.Fields("empJoinDate") = Me.txtempJoinDate
.Fields("empFirstName") = Me.txtempFirstName
.Fields("empLastName") = Me.txtempLastName
.Fields("empGender") = Me.txtempGender
.Fields("empAge") = Me.txtempAge
.Fields("empContact") = Me.txtempContact
.Fields("empAddress") = Me.txtempAddress
.Fields("empDutyHours") = Me.txtempDutyHours
.Fields("empBasicSalary") = Me.txtempBasicSalary
.Fields("empAllowance") = Me.txtempAllowance
'Total Salary field is Auto Calculated field from the table, so need to update from unbound text box
.Update
End With
Set rstNE = Nothing
DoCmd.Close acForm, "frm_employeeU"
End If
End SubPros
| Method | Primary Use | Pros | Cons |
|---|---|---|---|
| Single Bound Form | Record-by-record editing | Easy to build, auto save | Limited view, implicit saves |
| Continuous Bound Form | Multi-record display | Fast scanning, bound features | Harder formatting & custom logic |
| Unbound Form | Custom interfaces | Full control, custom save | More coding, manual processes |
Here are common reasons (which you can tailor to your own screenshots and video references):
The great thing about unbound forms is that nothing is set in stone until you hit ‘Submit.’ It works exactly how most of us expect a website to behave, you fill everything out, check it over, and then click save. This approach makes for a much smoother user experience because it prevents those ‘oops’ moments where half-finished info or accidental typos get saved to the database automatically.
Instead of Access automatically moving between records or inadvertently saving partial changes when the user tabs out or closes the form, the unbound approach gives exact control over navigation, saving, and validation.
You can validate all fields together before committing anything. For example:
Unbound forms allow complex workflows such as:
This level of control often outweighs the extra coding effort—especially in applications where data accuracy and UX matter.