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

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?
Who is Participating?
Leigh PurvisConnect With a Mentor Database DeveloperCommented:
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?
The limit is generally 255 columns.

200 will be fine - but may be slow to query
Rey Obrero (Capricorn1)Connect With a Mentor Commented:
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
Never miss a deadline with

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

>To Capricorn1

Thanks for the stats

nico5038Connect With a Mentor Commented:
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.

clarkscottConnect With a Mentor Commented:
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
Leigh PurvisDatabase DeveloperCommented:
Indeed, though that should happen as part of normalization process anyway.
It's good design.
All Courses

From novice to tech pro — start learning today.