在實際開發應用中,常常需要在窗體間傳遞參數。常用的幾種參數傳遞方法有如下幾種:
1。使用openargs
在調用的窗體使用如下語句:
docmd.openform "被調用的窗體", , , , , , "參數值"
在被調用的窗體使用me.openargs即可獲取傳遞過來的參數
2。使用全局變量
先設置一個全局變量,例如:gstrPara,
Public gstrPara as string
在調用之前傳遞參數值給這個全局變量
gstrPara="參數值"
docmd.openform "被調用的窗體"
在被調用的窗體裡使用gstrPara即可獲取傳遞過來的參數
3。使用tag標記
將要傳遞的參數放置在調用窗體的tag標記裡
在被調用的窗體裡通過調用 forms("調用的窗體").tag 來獲取參數值
4。使用模塊變量
在調用窗體設置一個公共的模塊變量 mstrPara
將要傳遞的參數放置在調用窗體的mstrPara變量裡
在被調用的窗體裡通過調用 forms("調用的窗體").mstrPara 來獲取參數值
5。直接獲取
如果參數來自調用窗體的控件,也可直接調用
在被調用的窗體裡直接引用調用窗體的控件的值 如:forms("調用的窗體").控件名.value
6。多個參數傳遞
如果需要傳遞多個參數,可將參數合並到一個變量裡傳送(使用指定符號隔開),然後在被調用窗體再拆分這些變量,以達到多個參數傳遞的效果。
不過,因為一般傳遞兩個參數的時候,多數一個是變量,一個是窗體本身,
所以我常用的方法也是比較實用的方法是:
在調用窗體使用如下語句:
docmd.openform "被調用的窗體", , , , , , "參數值"
而在被調用的窗體裡設置一個模塊變量 mfrmSrc
在被調用的窗體的open或load事件中設置
set mfrmSrc= screen.activeform
這時mfrmSrc就指向原來的調用窗體(因為在窗體未完全加載好前,屏幕上激活的窗體是原來的窗體)
使用mfrmSrc你可以獲取調用窗體上所有控件及相關的值,並且不需要事先知道原來窗體的名稱,具有比較強的通用性。
應該還有更多更好的參數傳遞方法,不一一舉例,也希望大家共同討論這個話題,相關回復請發表評論。