Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

64位office Access使用网站上下载的例子出错的解决方法

时 间:2020-11-11 13:56:56
作 者:欧志华   ID:51519  城市:广州
摘 要:64位office 使用网站下载的例子出错的解决方法。
正 文:

64位office Access使用网站上下载的例子出错的解决方法。

问题描述:
有学员在网站(www.accessoft.com)下载示例使用64位office运行的的时候会出现提示错误。

点击图片查看大图


这个是因为示例的模块里面引用API的代码只能在32位office运行,在64位office Access不能运行导致的。

点击图片查看大图

点击图片查看大图


解决方案:
使用下面链接的方法可以把代码修正过来,在64位开发环境中, Declare 语句应与 PtrSafe 关键字一起使用
http://www.accessoft.com/article-show.asp?id=17995

另外也可以直接使用如下代码替换原来的代码,那样就不管32位还是64位office都没有问题了


'API函数声明
#If VBA7 Then
Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongPtr) As LongPtr
Public Declare PtrSafe Function SetCursor Lib "user32" (ByVal hCursor As LongPtr) As LongPtr
Public Declare PtrSafe Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As LongPtr, ByVal lpCursorName As LongPtr) As LongPtr
#Else
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Public Declare Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#End If


注意: 

示例中的[系统模块]不能拷到平台中使用,因为平台中已经有了这个功能,否则会出现二义性错误。

SetCursor 二义性的解决方法
http://www.accessoft.com/article-show.asp?id=18647


Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助