不管你信不信,有人要求我们恢复一个古老的 MS Access 2.0 应用程序,该应用程序已经有几年没有使用了。然而,我们甚至无法让它在 XP 下运行。我们得到:
应用程序: MSACCESS Win 16 子系统资源不足,无法继续运行。单击“确定”,关闭应用程序,然后重新启动计算机。
有人知道我们该如何解决这个问题吗?如果我们可以让它运行,也许我们实际上可以移植它。:-)
答案1
我记得在 NT 4 上运行 Access 2 时遇到过问题,解决方案是授予某些文件夹的完全权限。我不记得它们是什么了,而且这似乎是错误的,因为直到 Windows 2000 才锁定程序文件夹,但我肯定需要在 Access 2 存储其文件的文件夹上设置完整的 NTFS 读/写/删除权限。当然,WinXP 将程序文件夹锁定为用户只读,所以这是一个开始的地方。
答案2
那是个长的很久以前,但我记得过去也遇到过类似的情况。如果我没记错的话,错误消息本身就是一个转移注意力的借口,问题的真正根源是分配给 16 位子系统的环境空间不足。(我想到了 512 字节)以前您可以指定要分配多少环境空间,但是我们不再使用 config.sys 启动了。:) 我相信我通过减少 PATH 环境变量中的条目解决了该特定实例。
右键单击“我的电脑”,选择“属性”,转到“高级”选项卡,然后单击“环境变量”按钮,打开“环境变量”对话框。
将“{username} 的用户变量”和“系统变量”部分的 PATH 值复制到文本文档中以便安全保存(即,以防您决定想要/需要恢复它们)。
现在,检查用户变量和系统变量中的 PATH 条目(它们组合在一起构成您的 PATH 环境变量):
- 从用户变量中删除所有重复的条目,因为它们已在更高的系统级别指定,
- 将任何长路径转换为 8.3 表示法。例如,C:\Program Files\foo\ 的所有实例 --> C:\PROGRA~1\foo\
- 明智地,你也可以决定删除你知道是不需要的。有时应用程序会添加您自己实际上不需要的 PATH 条目。
这些更改修复了我的错误信息。问题是(旧)PATH 在 32 位环境中没有问题,但当强行插入 16 位子系统时,环境空间溢出。(一个很好的后续问题可能是如何覆盖 16 位子系统的环境空间,但在我的例子中我不需要这样做。)
答案3
还请注意,Access 2.0 没有使用注册表,因此您无需担心任何事。但正如其他人(嗨,David)指出的那样,它的设置保存在相应的 Program Files 文件夹中的 INI 文件中
答案4
您可能想尝试在 dosbox 下安装 Win31/WfWG311,然后安装 Access 2.0。用户体验不如直接在 XP 下运行那么流畅,但比尝试完全虚拟化解决方案的开销要小得多。
或者,您是否尝试过在较新版本的 Access 下运行 Access DB?