UGTS Document #4 - Last Modified: 8/29/2015 3:23 PM
Microsoft Access Databases have a 2GB Limit

Microsoft Access databases have a 2GB size limit - even in Access 2010 - and Microsoft has no plans to remove this limitation, mostly because databases larger than this should use a full client-server architecture instead.  (Here is a detailed list of the limits of an Access database).  If you have a program that uses an Access database (MDB file) which is getting near this limit, and the program is trying to create a table, insert records, or do anything else which would cause the size of the database to grow, you might get the cryptic error 'Invalid Argument'.  What is really going on is that the file position in an Access database is a signed 32-bit integer, and the JET database driver sees a number over 2GB as a negative number.

If you are getting this error, you'll have to find a way to reduce the size of the database.  First, make a backup copy of your database, then try to compact and repair it.  If that reduces the size to a reasonable amount, then good, you're done.  If not, then you'll need to look through the database's tables, and find the tables which are extremely large and use DELETE sql statements to remove the data that you don't need in production (remember that you just backed up the database, so if you need to get that data back, just refer to your backup as the archive).  After doing DELETE statements, then do another compact and repair operation.  Repeat until the database MDB file is a reasonable size.