office交流網(wǎng)--QQ交流群號及微信交流群

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請用微信掃碼)

        

Access窗體之間參數(shù)傳遞如何傳遞對象的通用模塊函數(shù)

2017-07-22 22:25:00
zstmtony
原創(chuàng)
7006

我們知道在Access窗體之間可以傳遞各種參數(shù)。

但這些參數(shù)一般是字符或數(shù)字,有關Access窗體傳遞參數(shù)的技巧可以參考這里:

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

但如何讓Access之間可以傳遞對象這種參數(shù)呢。Access窗體本身并不提供這種功能


我在幫客戶編寫一個定制的Access軟件系統(tǒng)時遇到了這個問題,后來 經(jīng)過各種嘗試

最終使用API實現(xiàn)了窗體之間傳遞對象參數(shù)的功能,后把它放在我們的Access通用開發(fā)平臺中,再開源出來

詳細源碼如下:



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交流網(wǎng)
'作者:tmtony
'日期:2010年06月03日
 
'將對象轉(zhuǎn)換為指針,用于窗體間參數(shù)傳遞
Public Function gf_ObjToPointer(ByRef objThisObject As Object) As Long
    Dim lngThisPointer As Long

    apiCopyMemory lngThisPointer, objThisObject, POINTERSIZE
    gf_ObjToPointer = lngThisPointer

End Function

'將指針轉(zhuǎn)換為對象,用于窗體間參數(shù)傳遞
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  
分享
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問