Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


How many columns can I have in Access before I have problems

Posted on 2006-11-14
Medium Priority
Last Modified: 2008-01-09
I know I'll get flak for this comment, but I want to put nearly 200 columns into an Access table?  Can I do this safely?  Also, how many tables can an Access database have?  What is the capacity?
Question by:al4629740
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 35

Expert Comment

ID: 17943621
The limit is generally 255 columns.

200 will be fine - but may be slow to query
LVL 44

Accepted Solution

Leigh Purvis earned 300 total points
ID: 17943704
As Raynard says - the ultimate limit is 255 per table.
As you say - you really shouldn't try to push that limit.
200 will indeed be reasonable - and will likely query fine.. (though you *might* experience some update lags with lots of data?)

As far as tables - that's less rigid.
There's the seemingly vague specification that an Access mdb can have 32,768 objects.
That's everything.  Tables, queries, forms, modules, hidden queries and tables...
You won't ever go anywhere near that limit (gawd I'd hope not) and you wouldn't necessarily know if you were close to it anyway.

Tables with lots of fields can be split up into multiple tables.
mdb's with lots of tables can be similarly split up into several mdbs.

I assume you're already good friends with normalization?
LVL 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 300 total points
ID: 17943708
Microsoft Access database specifications

Attribute                                            Maximum
Microsoft Access database (.mdb) (Microsoft Access database: A collection of data and objects (such as tables, queries, or forms) that is related to a particular topic or purpose. The Microsoft Jet database engine manages the data.) file size 2 gigabytes minus the space needed for system objects (system object: Database objects that are defined by the system, such as the table MSysIndexes, or by the user. You can create a system object by naming the object with USys as the first four characters in the object name.).
Number of objects in a database 32,768
Modules (including forms and reports with the HasModule property set to True) 1,000
Number of characters in an object name 64
Number of characters in a password 14
Number of characters in a user name or group name 20
Number of concurrent users 255


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 may be less because of tables opened internally by Microsoft 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;
1 gigabyte 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


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 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 ANDs in a WHERE or HAVING clause 99
Number of characters in an SQL statement approximately 64,000

Form and report

Attribute Maximum
Number of characters in a label 2,048
Number of characters in a text box 65,535
Form or report width 22 in. (55.87 cm)
Section height 22 in. (55.87 cm)
Height of all sections plus section headers (in Design view (Design view: A window that shows the design of these database objects: tables, queries, forms, reports, macros, and data access pages. In Design view, you can create new database objects and modify the design of existing ones.)) 200 in. (508 cm)
Number of levels of nested forms or reports 7
Number of fields or expressions you can sort or group on in a report 10
Number of headers and footers in a report 1 report header/footer; 1 page header/footer; 10 group headers/footers
Number of printed pages in a report 65,536
Number of controls and sections you can add over the lifetime of the form or report 754
Number of characters in an SQL statement that serves as the Recordsource or Rowsource property of a form, report, or control (both .mdb and .adp) 32,750
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

LVL 22

Expert Comment

ID: 17943749
>To Capricorn1

Thanks for the stats

LVL 54

Assisted Solution

nico5038 earned 200 total points
ID: 17944752
The max number of fields also depends on the length of the fieldnames. My table with 200 fields and names up to 8 characters did got corrupted when filled.
I would advise to use two 100 field tables and JOIN them on the Unique ID when all data is needed.

The 2GB max isn't realy a max as Access will allow to link tables from other databases, so using extra (backend) databases for your tables can stretch the application into multiples of 2GB.

LVL 20

Assisted Solution

clarkscott earned 200 total points
ID: 17945627
I would seriously suggest creating several tables to handle your data.  You can have a one-to-one relationship between the data.

I have a system table that contains many columns.  Some of the columns were only used occasionally.  These columns went to a different table and only exist when needed.  This save space and query time.

It's a little more programming time, though.....

Scott C
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17945651
Indeed, though that should happen as part of normalization process anyway.
It's good design.

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question