“File sharing lock count exceeded. Increase MaxLocksPerFile registry entry”
You may encounter this error message when running a report on larger projects. This is not a very common error, however, I’ve added the solution below in case you do come across this error message. As always, if you require assistance, or you are not comfortable making these changes, don’t hesitate to call support directly at 866-386-6571.
I recommend that you back up all your systems, including your windows registry (click here to learn about backing up your registry). This should be standard practice with any enterprise solution.
Method 1: Set the registry key to MaxLocksPerFile to increase the maximum number of locks per file
1. Click Start, and then click Run.
2. Type regedit, and then click OK.
3. Use the appropriate method:
* In Microsoft Access 2000, in Microsoft Access 2002, and in Microsoft Office Access 2003 that are running on a 32-bit Windows operating system, use Registry Editor to locate the following registry key:
In Microsoft Access 2000, in Microsoft Access 2002, and in Microsoft Office Access 2003 that are running on a 64-bit Windows operating system, use Registry Editor to locate the following registry key:
* In Microsoft Office Access 2007 that is running on a 32-bit Windows operating system, use Registry Editor to locate the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE
In Microsoft Office Access 2007 that is running on a 64-bit Windows operating system, use Registry Editor to locate the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE
4. In the right pane of Registry Editor, double click MaxLocksPerFile.
5. On the Edit DWORD Value dialog box, click Decimal.
6. Modify the value of the Value data box as required, and then click OK.
Note This method changes the Windows registry setting for all applications that use the Microsoft Jet database engine version 4.0.
Back to the top
Method 2: Use the SetOption method to temporarily change MaxLocksPerFile
Note The sample code in this article uses Microsoft Data Access Objects. For this code to run correctly, you must reference the Microsoft DAO 3.6 Object Library. To do so, click References on the Tools menu in the Visual Basic Editor, and make sure that the Microsoft DAO 3.6 Object Library check box is selected.
The SetOption method temporarily overrides the default number of locks per file. You set the default number of locks per file when you set the MaxLocksPerFile registry key. You set the new value by using the SetOption method. The new value is valid until you close the DBEngine object. To use Method 2, follow these steps:
1. Open Microsoft Access.
2. Open a database, and then press Alt+F11 to launch the Visual Basic editor.
3. On the Microsoft Visual Basic –[ (Code)] window, click Immediate Window in the View menu.
4. In Immediate Window, enter the following code.
5. Press the ENTER key to run the line of code.
Note This temporarily sets the MaxLocksPerFile value to 15,000.
To process large transactions, set the MaxLocksPerFile value to meet your requirement, and then run the transactions in the session.
Changes you make to the MaxLocksPerFile setting by using the SetOption method are available only for the current session.