ACCESS 2010 System Resource Exceeded

前端 未结 4 1961
無奈伤痛
無奈伤痛 2021-01-22 12:58

My team were working with access 2000, where we have our MDB project. This application(ERP) could open around 20 access forms. After we decide migrate our entire system to Acces

4条回答
  •  一生所求
    2021-01-22 13:22

    The issue is caused by 32 bit Access exceeding the 32 bit windows Virtual Memory limit of 2GB per app. I don't know why this issue does not crop up on Windows XP (didn't have time to test it).

    You can track VM usage either through Performance Monitor or through code in the access app. You will see that as forms open the VM usage creeps up until access balks.

    The solution is to switch to Access 64 bit on windows 64bit. Keep in mind that if you have external dll calls they need to be rewritten for 64 bit. Also ActiveX controls need to be 64 bit.


    Code to track VM

    Declare PtrSafe Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
    
    Public Type MEMORYSTATUS
       dwLength As Long
       dwMemoryLoad As Long
       dwTotalPhys As Long
       dwAvailPhys As Long
       dwTotalPageFile As Long
       dwAvailPageFile As Long
       dwTotalVirtual As Long
       dwAvailVirtual As Long
    End Type
    
    Function ReturnVirtualMemory() As Long
    
        Dim Mem as MEMORYSTATUS
    
        Mem.dwLength = Len(Mem)
        GlobalMemoryStatus Mem
    
        ReturnVirtualMemory = Mem.dwTotalVirtual - Mem.dwAvailVirtual
    End Function
    

提交回复
热议问题