Microsoft Visual Basic for Applications编译错误:若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新Declare语句,然后用PtrSafe属性标记它们的解决方法2-麥田
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 综合其它


Microsoft Visual Basic for Applications编译错误:若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新Declare语句,然后用PtrSafe属性标记它们的解决方法2

发表时间:2018/7/19 14:15:07 评论(3) 浏览(49632)  评论 | 加入收藏 | 复制
   
摘 要:Microsoft Visual Basic for Applications编译错误:若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新Declare语句,然后用PtrSafe属性标记它们的解决方法2
正 文:
一、网友问题描述
yeatsyu(848268098) 10:53:41
请教这个编译错误如何解决,提示:
Microsoft Visual Basic for Applications编译错误 若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新Declare语句,然后用PtrSafe属性标记它们
如下图:


点击确定后,提示如下:
点击图片查看大图

二、解决方案
Accessoft-麥田(2851379731) 10:54:21
任意新建一个模块,把下面代码全部拷贝到模块代码里面,注意是替换模块里面原有的代码。

Option Compare Database

'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 LongPtr) As LongPtr
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
Public Const IDC_HAND = 32649&          '手形
Public Const IDC_APPSTARTING = 32650&   '系统忙
Public Const IDC_ARROW = 32512&         '常规箭头形
Public Const IDC_CROSS = 32515&         '十字形
Public Const IDC_IBEAM = 32513&         '文本插入
Public Const IDC_ICON = 32641&          '使用指定光标文件
Public Const IDC_NO = 32648&            '不可用
Public Const IDC_SIZE = 32640&          '隐藏指针
Public Const IDC_SIZEALL = 32646&       '选中并移动
Public Const IDC_SIZENESW = 32643&      '左下角右上角大小调整
Public Const IDC_SIZENS = 32645&        '上下调整
Public Const IDC_SIZENWSE = 32642&      '左上角右下角大小调整
Public Const IDC_SIZEWE = 32644&        '左右调整
Public Const IDC_UPARROW = 32516&       '上箭头
Public Const IDC_WAIT = 32514&          '沙漏
'改变光标指针调用示例: SetCursor LoadCursorByNum(0,32649)
'                       SetCursor LoadCursorByNum(0, IDC_HAND)

'ShellExecute函数二次封装,以简化使用
'输入参数File可以是文件名,网页地址或命令行
Public Function ShellEx(File As String)
    ShellExecute hWndAccessApp, "Open", File, 0, 0, 1
End Function

粘贴好代码后然后保存一下,默认给模块命名就可以了。

yeatsyu(848268098) 10:59:38
好了,谢谢!
是什么原因?

Accessoft-麥田(2851379731) 10:54:21
是因为你的这个程序本身是在32位Office Access环境下编写的,现在换成64位Office Access,要把对应的代码也改一下才能支持64的Access环境。

好了,今天的姿势就涨到这里,小伙伴咱们下次再见。

Access软件网交流QQ群(群号:198465573)
 
 相关文章
Office2010(Access)的优缺点、(64位Office...  【Access软件网整理  2012/8/27】
微软建议用户避开64位Office 2010、不建议使用64位Ac...  【红尘如烟  2012/9/12】
Microsoft Visual Basic for Applic...  【麥田  2014/9/11】
怎么查看自己的Access是多少位?如何查看安装的Access版本...  【麥田  2017/7/6】
Access开发平台用32位开发的程序,能快速转换成64位的吗?用...  【麥田  2017/8/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

麥田

文章分类

文章存档

友情链接