Database Components  «Prev  Next»

Lesson 5 How data is stored
Objective Describe how an Access database stores data in a table.

How Data Is Stored in an Access Database

In Microsoft Access, raw data is stored in tables. A table is the foundational storage structure in an Access database (ACCDB/MDB). If a database contains no tables, it has no persistent data to query, edit, or report on.

Access tables look similar to spreadsheets, but the intent is different: a table is designed to store a well-defined set of data about a subject (clients, projects, invoices), with rules that preserve data quality as the database grows.

Tables, fields, and records

A table is structured as columns and rows:

  • Fields are the columns. A field stores a single category of information (First Name, City, Start Date).
  • Records are the rows. A record stores a set of related values across fields for one item (one client, one project).

In an Access table, columns and rows are not interchangeable: columns are always fields and rows are always records. This is one of the key differences between a relational table and a general-purpose spreadsheet.

Data stored in a table

| Field1    | Field2     | Field3             |
| --------- | ---------- | ------------------ |
| Margaret  | Levine     | 455 Cherry St.     |
| Catherine | Molkenbur  | 25 Pine Rd.        |
| Thorley   | Cook       | 6889 Oak La.       |
| Hillary   | Smith      | 75 Maple Rd.       |
| Christina | White      | 894 Chestnut St.   |
| Bruce     | MacWilliam | 78 Magnolia Ct.    |
| Darren    | Mace       | 9883 Dogwood St.   |
| Stephanie | Pitney     | 64 Lilac La.       |
| Piper     | Ronn       | 932 Apple Cir.     |
| Bill      | Clarke     | 5 Orange Grove Rd. |
| Nora      | Sweeney    | 88 Olive La.       |
| Meg       | Young      | 8712 Redwood St.   |
| Gary      | Vincens    | 67 Hemlock Rd.     |
| Matt      | Jones      | 486 Boxwood Dr.    |
Data stored in an Access table (fields as columns, records as rows).

MS Access 365

Field design

A field is a category of information. If you are storing contact details, it is common to create fields such as: First Name, Last Name, Address, City, State, and Zip.

Each record (row) contains one value per field. When you view the table in Datasheet View, Access displays each record across the row so you can quickly scan or edit values.

Best practice is to design fields so they hold small, meaningful pieces of data. This makes sorting, filtering, grouping, and reporting far easier.

Breaking data into fields

A common design mistake is storing compound values in a single field (for example, a full name or full address in one column). You typically get better usability and better query capability by splitting values into useful parts:

  1. Use separate fields for First Name and Last Name.
  2. Use separate fields for Street Address, City, and State.
  3. Use a separate field for Zip (often stored as text to preserve leading zeros).

This approach improves analysis and user experience. For example, you can sort by Last Name, filter by State, or generate letters and labels using the exact components you need.

For additional practice on this concept, see: Breaking Data into Fields

Data types and field properties

Each field has a data type. Data types matter because they control storage, validation, sorting behavior, and which operations you can perform in queries.

Common Access data types include:

  • Short Text / Long Text for names and descriptions
  • Number for numeric values used in calculations
  • Date/Time for dates and timestamps
  • Currency for financial values
  • Yes/No for true/false flags
  • AutoNumber for generated unique identifiers
  • Attachment for storing files (use selectively; links are often better for large files)

Access also supports field-level rules through properties such as: Required, Default Value, Validation Rule, and Input Mask. These properties help keep data consistent and reduce cleanup work later.

Primary keys and indexes

A well-designed table usually has a primary key, which uniquely identifies each record. Access commonly uses:

  • AutoNumber as a surrogate key (for example, ClientID)
  • A natural key when a stable, guaranteed-unique identifier already exists (less common in beginner databases)

Primary keys are indexed automatically. Indexes allow the Access database engine to find records quickly and are especially important for:

  • Fields used in search criteria (WHERE conditions)
  • Fields used to join related tables
  • Fields used for sorting large datasets

Best practice: index with intent. Too many indexes can slow down inserts/updates because Access must maintain each index as data changes.

Relationships and referential integrity

Access is a relational database system. That means data is often stored across related tables rather than repeating the same information in one giant table.

For example, a database might store client contact details in one table and client projects in another table:

  • Clients (ClientID, Company, Address, City, State, Zip, ...)
  • Projects (ProjectID, ClientID, ProjectName, StartDate, EstimatedCost, ...)

The shared field (such as ClientID) creates the relationship. When you enforce referential integrity, Access helps prevent “orphan” records (for example, a project that references a ClientID that does not exist).

How tables connect to queries, forms, and reports

Tables store the data. The other Access objects provide structured access to that data:

  1. Queries retrieve, filter, join, and summarize data (and can also update data in controlled ways).
  2. Forms provide a user-friendly data-entry and editing interface.
  3. Reports format and present data for printing, exporting, or business review.

Many Access applications add macros or VBA to streamline workflows, validate user actions, and improve usability, but the underlying data still lives in tables.

Design checklist

Use the following checklist when designing (or reviewing) a table:

  • Does the table represent a single subject (Clients, Orders, Projects)?
  • Does each field store one meaningful piece of data (no “everything in one column”)?
  • Are data types appropriate (Date/Time for dates, Currency for money, Text for Zip codes)?
  • Is there a clear primary key and are relationships defined where needed?
  • Are Required/Validation rules set for critical fields?
  • Are indexes present for keys and high-usage search/join fields (but not excessive)?

SEMrush Software 5 SEMrush Banner 5