2013-04-04 135 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

相關問題