Last updated: August 25, 2026.
Microsoft Access has practical limits on database size, objects, fields, queries, and concurrent users. These headline limits apply to current desktop versions including Access for Microsoft 365 and Access 2024. Older-version tables are preserved below for people maintaining legacy databases.
Key limits in current versions of Access
| Attribute | Maximum |
|---|---|
| Total .accdb or .mdb database size | 2 GB, minus space required for system objects |
| Objects in one database | 32,768 |
| Modules | 1,000 |
| Characters in an object name | 64 |
| Concurrent users | 255 |
| Fields in a table | 255 |
| Open tables | 2,048, although the practical number can be lower |
| Indexes in a table | 32, including indexes created internally for relationships |
The 2 GB limit includes data and database objects. A split database can link a front end to tables in other Access files, but it does not remove the operational limits of a shared desktop database. See Microsoft’s complete Access specifications.
When these limits become a design issue
- File growth: compact and repair, archive old data, or move the back end to a server database before approaching 2 GB.
- Concurrent editing: 255 is a published maximum, not a recommended target. Network quality, queries, locking, and write volume determine practical capacity.
- Complex applications: split front end and back end, give each user a local front-end copy, and keep reliable backups.
- Web access: an Access desktop interface is not a web application. A browser front end or migration may better fit remote users.
Legacy Access specifications
Legacy reference: Access 2007 and 2003
General
| Attribute | Maximum |
| Access database (.accdb) file size | 2 gigabytes, minus the space needed for system objects Note: Although the maximum size for a single database file is 2GB, you can work around this limitation by using a split database. A front-end database file can point to thousands of back-end database files, each of which could be as large as 2GB. |
| Number of objects in a database | 32,768 |
| Number of modules (including forms and reports that have the HasModule property set to True) | 1,000 |
| Number of characters in an object name | 64 |
| Number of characters in a password | 20 (for MS Access 2007) 14 (for MS Access 2003) |
| Number of characters in a user name or group name | 20 |
| Number of concurrent users | 255 |
Table
| Attribute | Maximum |
| Number of characters in a table name | 64 |
| Number of characters in a field name | 64 |
| Number of fields in a table | 255 |
| Number of open tables | 2048; the actual number might be smaller because of tables opened internally by Access |
| Table size | 2 gigabyte minus the space needed for the system objects |
| Number of characters in a Text field | 255 |
| Number of characters in a Memo field | 65,535 when entering data through the user interface; 2 gigabytes (for MS Access 2007) and 1 gigabyte (for MS Access 2003) of character storage when entering data programmatically |
| Size of an OLE Object field | 1 gigabyte |
| Number of indexes in a table | 32 |
| Number of fields in an index | 10 |
| Number of characters in a validation message | 255 |
| Number of characters in a validation rule | 2,048 |
| Number of characters in a table or field description | 255 |
| Number of characters in a record (excluding Memo and OLE Object fields) when the UnicodeCompression property of the fields is set to Yes | 4,000 |
| Number of characters in a field property setting | 255 |
Query
| Attribute | Maximum |
| Number of enforced relationships | 32 per table, minus the number of indexes that are on the table for fields or combinations of fields that are not involved in relationships* |
| Number of tables in a query | 32* |
| Number of joins in a query | 16* |
| Number of fields in a recordset | 255 |
| Recordset size | 1 gigabyte |
| Sort limit | 255 characters in one or more fields |
| Number of levels of nested queries | 50* |
| Number of characters in a cell in the query design grid | 1,024 |
| Number of characters for a parameter in a parameter query | 255 |
| Number of AND operators in a WHERE or HAVING clause | 99* |
| Number of characters in an SQL statement | Approximately 64,000* |
*Maximum values might be lower if the query includes multivalued lookup fields.
Legacy reference: Access 2000
| Attribute | Maximum |
| Max mdb file size | 2GB |
| Max table size | 1GB |
| Max objects in database | 32768 |
| Max modules in database | 1000 |
| Max object name length | 64 |
| Max password length | 14 |
| Max user/group name length | 20 |
| Max users connected to database | 255 |
| Max record length (without Memos and BLOBs) | 2048 |
| Max fields in table | 255 |
Legacy reference: Access 1997
| Attribute | Maximum |
| Max mdb file size | 1GB |
| Max objects in database | 32768 |
| Max modules in database | 1024 |
| Max object name length | 64 |
| Max password length | 14 |
| Max user/group name length | 20 |
| Max users connected to database | 255 |
| Max record length (without Memos and BLOBs) | 2048 |
| Max fields in table | 255 |
| Max nested transactions | 7 |