首页 > 解决方案 > 将相机集成到 MS Access 时出错

问题描述

我从以下位置获得代码:

https://www.developerfusion.com/thread/46191/how-to-capture-picture-using-webcam-in-vb60/

但是,在使用此代码时,我遇到了编译错误>

此项目中的代码必须更新才能在 64 位系统上使用。请查看和更新​​声明语句,然后用 PtrSafe 属性标记它们。

我用了 :

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

它不起作用。

标签: windowsms-accessvbams-access-2010

解决方案


#If VBA7除非您的数据库需要运行Office 2007或更低,否则不需要条件编译 ( )。如果Office 2010您只需要最旧的版本

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)

因为在 Office x86 和Office x64上VBA7转换LongPtr为数据类型。LongLongLong

认识到参数ms保持为 a Long,因为它不是指针/句柄。有关详细信息,请参阅如何将 VBA 中的 Windows API 声明转换为 64 位

如果您需要在 VBA7 使用之前支持旧的 Office 版本:

#If VBA7 Then
  Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#Else
  Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If

推荐阅读