forms - ACCESS 2010 系统资源超标

标签 forms ms-access vba ms-access-2010

我的团队正在使用 access 2000,我们在那里有我们的 MDB 项目。这个应用程序(ERP)可以打开大约 20 个 Access 表单。在我们决定将我们的整个系统迁移到 Access 2010 后,使用它的新格式 *.accdb;我们在内存较少的情况下遇到了这个问题,现在大约 100mb。

是否有任何解决方法,我可以遵循的任何路径来增加我的 Access 2010 项目内存限制。

问题流程:我们将登录名和密码放在初始表单中,然后开始打开表单(从 Access 表单中获取的表单,字面意思)。当大约10个表单时,access 2010使用的内存达到107mb,当我们打开下一个表单时,系统崩溃并出现以下错误:“3035 描述系统资源超出”

最佳答案

该问题是由 32 位 Access 超过每个应用程序 2GB 的 32 位 Windows 虚拟内存限制引起的。我不知道为什么这个问题在 Windows XP 上没有出现(没有时间测试)。

您可以通过性能监视器或 Access 应用程序中的代码跟踪 VM 使用情况。您会看到,随着表单打开,VM 使用率逐渐上升,直到 Access 受阻。

解决方法是在windows 64bit 上切换到Access 64 位。请记住,如果您有外部 dll 调用,则需要将它们重写为 64 位。此外,ActiveX 控件需要为 64 位。

跟踪虚拟机的代码

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

关于forms - ACCESS 2010 系统资源超标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550367/

相关文章:

forms - 隐藏在 ms access 2007 中具有焦点的控件

mysql - Access MySQL ODBC连接打开缓慢

sql - 如何使用条件语句使用单独表中的数据更新一张表

vba - 使用 VBA 进行递归树状解析

excel - 如何使用 vba 突出显示小数或字符小于 3 且大于 6 的单元格?

html - 在tippy.js div中添加一个表单(在cytoscape.js的节点中),但文本输入和按钮未激活

javascript - 如何获取ajax表单提交返回值

vba - 将一个工作表中的所有过滤数据复制到新工作簿中

javascript - 单击按钮时添加删除带有文本框的 <li。 (出于 ul 换行问题)和唯一的名称输入

asp.net - Hierarchical Nester Repeater 重复父项