安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假

Access窗体之间参数传递如何传递对象的通用模块函数

2017-07-22 22:25:00
zstmtony
原创
1641

我们知道在Access窗体之间可以传递各种参数。

但这些参数一般是?#22336;?#25110;数字,有关Access窗体传递参数的技巧可以参考这里:

http://www.access-cn.com/info/1574-cn.html

但如何让Access之间可以传递对象这种参数呢。Access窗体?#26087;?#24182;不提供这种功能


我在帮客户编写一个定制的Access软件系统时遇到了这个问题,后来 经过各种尝试

最终使用API实现了窗体之间传递对象参数的功能,后把它放在我们的Access通用开发?#25945;?/a>中,再开源出来

详细源码如下:



Option Compare Database
Option Explicit

Private Const POINTERSIZE As Long = 4
Private Const ZEROPOINTER As Long = 0

Private Declare Sub apiCopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
 

'模块来源:Access交流网
'作者:tmtony
'日期:2010年06月03日
 
'将对象转换为指针,用于窗体间参数传递
Public Function gf_ObjToPointer(ByRef objThisObject As Object) As Long
    Dim lngThisPointer As Long

    apiCopyMemory lngThisPointer, objThisObject, POINTERSIZE
    gf_ObjToPointer = lngThisPointer

End Function

'将指针转换为对象,用于窗体间参数传递
Public Function gf_PointerToObj(ByVal lngThisPointer As Long) As Object
    Dim objThisObject As Object

    apiCopyMemory objThisObject, lngThisPointer, POINTERSIZE
    Set gf_PointerToObj = objThisObject
    apiCopyMemory objThisObject, ZEROPOINTER, POINTERSIZE

  '  Set objThisObject = Nothing  '有些时候要去掉

End Function  
分享
? 1999-2019 Office交流网?? 中山市天鸣科技发展有限公司 粤ICP备10043721号-5 SQL查询:19
内存占用:7.75MB
PHP 执行时间:0.19
双色球大奖2000年
安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假
四象投注 北京赛车开奖号 街机象棋老虎机 持枪王者注册 大乐透生肖乐 钻石帝国试玩 pk10九码一千期不错 贪玩蓝月广告词搞笑版 北京快乐8走势图360 北京pk10每天几点开奖