3

I have an Access application (32-bit Office, Windows 7) with a form that displays a large number of sub-forms. Each sub-form shows information about a specific factory-floor status, and all need to be viewable at the same time.

After a certain point, adding additional sub-forms generates the error "There isn't enough memory to perform this operation. Close unneeded programs and try the operation again."

Using some stripped-down test databases with no code or objects besides the forms, I find that this error appears when the number of sub-forms is between 80 and 130, depending on the machine that I test on. There is plenty of free RAM on my machine, and I can open multiple copies of the Access database (and main form) as long as they are each in separate Access instances.

I've been through lots of research on Access limits, memory handling, etc. and no help there. By monitoring the demands of the database on my system memory, I can't see any problems in that area, and I'm wondering if the error message is a red-herring. I would like to find a way to increase the resources allocated to the application, or somehow allow more sub-forms to be added.

Any ideas?

enter image description here

GSR
  • 31
  • 5
  • 1
    The error message is surely misleading - the problem is not system memory, but whatever internal resource that is running out. I doubt you can change that allocation. --- But > 100 subforms at the same time? I can't believe this is the best way to display your data. Can you share a screenshot of the form? – Andre May 11 '16 at 21:03
  • I suggest you change display of the data from Forms to Reports. As pointed out by Andre, pls post screenshot of what you are achieving – Adarsh Madrecha May 12 '16 at 05:01
  • Thanks for your responses! I have posted a simplified screen shot. I know that using this many subforms is unusual, but I think in this case it is necessary. This form is displayed on large screens on a factory floor so that workers and managers can monitor production variables. I cannot use reports since the forms must refresh automatically. Managers click into cells to enter and edit values, so this is also an interactive form. I am able to display 8-10 cells (rows) each with 8 hours of time slots. Once I try to exceed that, I start getting errors, even if tables and code are removed. – GSR May 12 '16 at 12:31

1 Answers1

1

I know this problem very well, and it has to do with the sub forms. Years ago, I made an application for a 36-month-production planning, which looked very similar to your applicaton.

I suggest you to find a solution where you use only one subform where you put all controls from one single row on it. Name the controls like t1,t2,t3, t4, etc, and put some VBA code behind which binds the controls to your fields.

On the long run, I suggest to go away from MS Access and use C# with XAML, which is much more modern. Even with C#/WinForms, you have more flexibility than with Access. WinForms is only a bit unflexible with various screen sizes and resolutions.

SQL Police
  • 4,127
  • 1
  • 25
  • 54
  • Update: I would still like to find a switch somewhere (registry?) that would resolve this problem. In the meantime, I ran a test using an installation of the 64-bit Access 2010 runtime version. I was able to display over 300 sub-forms with no problem. I may have to convert everyone to 64-bit Access, re-write the code as needed, and enter the modern world. – GSR May 12 '16 at 16:59