将相机集成到MS Access时出错

时间:2019-03-06 16:22:23

标签: windows ms-access access-vba ms-access-2010

我从:

获得了代码

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

它不起作用。

1 个答案:

答案 0 :(得分:1)

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

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

因为VBA7LongPtr转换为Office x86上的数据类型Long和Office x64上的LongLong

识别参数ms保留一个Long,因为它不是指针/句柄。有关更多信息,请参见How to convert Windows API declarations in VBA for 64-bit

如果在使用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