ms-access - Sleep Lib "kernel32"给出 64 位系统错误

标签 ms-access vba

运行所有功能后,我试图关闭 Access 权限( Application.Quit )。

VBA close access after all functions finished一直是我的引用。

但是当我Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ,它给了我以下错误:

The code in this project must be updated for use on 64 bit systems.



在完全关闭 Access 之前,是否可以替换此代码来运行所有功能?

最佳答案

dwMilliseconds参数是一个 DWORD,所以它在技术上在 32 位机器上是 32 位,在 64 位机器上是 64 位。因此,它需要 PtrSafe符号(虽然技术上 dwMilliseconds 将正确编码,因为它是 ByVal ......无论如何谁想等那么久)将声明更改为:

#If VBA7 Then
    Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

关于ms-access - Sleep Lib "kernel32"给出 64 位系统错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638504/

相关文章:

sql - 如何在 MS-Access 中将 3 条记录分组为 1 行?

VBA如何声明包含不同数据类型元素的数组

excel - VBA - 创建一个消息框,它只在公式单元格更改时显示一次

excel - 如何更改代码以将一个复选框添加到 ActiveCell 而不是 ActiveSheet?

ms-access - Access 中 Left() 和 Left$() 函数的区别

sql - 如何在MS Access中的SQL SELECT INTO语句中为新字段定义类型(int)

delphi - ADO 查询导致 mdb 数据库超过 2GB 限制

mysql - MySQL 存储过程通过 MS Access (VBA) 中的 ADODB 的输出参数在一台计算机上正确,在另一台计算机上随机

excel - VB新手。我的代码生成错误 : "expecting End With". with-end with 语句如何工作?

vba - 在 AutoCAD 中运行 VBA 宏