2013-04-04 114 views
1

您好我最近在我的Windows Server 2003 32位上安装了MS Access 2010。从那以后,我的一个VBA脚本运行不正常。 MS Access意外退出给Kernel32模块带来这个错误。 enter image description hereWindows Server 2003上的MS Access 2010的内核32问题32位

我在我的VBA代码中使用了这一行。

Private Declare Function CreateProcessA Lib "kernel32" (ByVal _ 
     lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _ 
     lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _ 
     ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _ 
     ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _ 
     lpStartupInfo As STARTUPINFO, lpProcessInformation As _ 
     PROCESS_INFORMATION) As Long 

此前我使用MS Access 2003版本,我从来没有任何问题。是否有与MS Access 2010-Windows Server 2003-Kernel32兼容性问题。请帮忙。谢谢

+0

http://support.microsoft.com/kb/184802 – Kasnady 2013-04-04 08:08:40

+0

可以将您的完整声明与您用作参数的类型一起显示吗? – Mike 2013-04-04 18:25:56

+0

@Mike - 我已经包含了完整的声明。 – 2013-04-08 06:17:04

回答

1

虽然我不能提供有关您遇到的kernel32问题的任何具体指导,但我会建议您开始从您的代码中消除32位Windows API调用。这样的调用将阻止您的代码在64位版本的Access下编译,除非您调整声明以使其成为“指针安全”(参考号:here),并且在许多使用Win32 API调用的更常见情况下,现在可用的通用方法,如用于操作“文件打开”和“文件保存”对话框的FileDialog对象。

在这种情况下,我会调查WScript.Shell对象的.Exec.Run方法。这些方法的描述(以及它们之间的差异)here

相关问题