在(zài)窗體間傳遞參數的(de)幾種常用辦法
在(zài)實際開發應用中,常常需要(yào / yāo)在(zài)窗體間傳遞參數。常用的(de)幾種參數傳遞方法有如下幾種:
1、使用openargs
在(zài)調用的(de)窗體使用如下語句:
docmd.openform "被調用的(de)窗體", , , , , , "參數值"
在(zài)被調用的(de)窗體使用me.openargs即可獲取傳遞過來(lái)的(de)參數
2、使用全局變量
先設置一(yī / yì /yí)個(gè)全局變量,例如:gstrPara,
Public gstrPara as string
在(zài)調用之(zhī)前傳遞參數值給這(zhè)個(gè)全局變量
gstrPara="參數值"
docmd.openform "被調用的(de)窗體"
在(zài)被調用的(de)窗體裏使用gstrPara即可獲取傳遞過來(lái)的(de)參數
3、使用tag标記
将要(yào / yāo)傳遞的(de)參數放置在(zài)調用窗體的(de)tag标記裏
在(zài)被調用的(de)窗體裏通過調用 forms("調用的(de)窗體").tag 來(lái)獲取參數值
4、使用模塊變量
在(zài)調用窗體設置一(yī / yì /yí)個(gè)公共的(de)模塊變量 mstrPara
将要(yào / yāo)傳遞的(de)參數放置在(zài)調用窗體的(de)mstrPara變量裏
在(zài)被調用的(de)窗體裏通過調用 forms("調用的(de)窗體").mstrPara 來(lái)獲取參數值
5、直接獲取
如果參數來(lái)自調用窗體的(de)控件,也(yě)可直接調用
在(zài)被調用的(de)窗體裏直接引用調用窗體的(de)控件的(de)值 如:forms("調用的(de)窗體").控件名.value
6、多個(gè)參數傳遞
如果需要(yào / yāo)傳遞多個(gè)參數,可将參數合并到(dào)一(yī / yì /yí)個(gè)變量裏傳送(使用指定符号隔開),然後在(zài)被調用窗體再拆分這(zhè)些變量,以(yǐ)達到(dào)多個(gè)參數傳遞的(de)效果。
不(bù)過,因爲(wéi / wèi)一(yī / yì /yí)般傳遞兩個(gè)參數的(de)時(shí)候,多數一(yī / yì /yí)個(gè)是(shì)變量,一(yī / yì /yí)個(gè)是(shì)窗體本身,
所以(yǐ)我常用的(de)方法也(yě)是(shì)比較實用的(de)方法是(shì):
在(zài)調用窗體使用如下語句:
docmd.openform "被調用的(de)窗體", , , , , , "參數值"
而(ér)在(zài)被調用的(de)窗體裏設置一(yī / yì /yí)個(gè)模塊變量 mfrmSrc
在(zài)被調用的(de)窗體的(de)open或load事件中設置
set mfrmSrc= screen.activeform
這(zhè)時(shí)mfrmSrc就(jiù)指向原來(lái)的(de)調用窗體(因爲(wéi / wèi)在(zài)窗體未完全加載好前,屏幕上(shàng)激活的(de)窗體是(shì)原來(lái)的(de)窗體)
使用mfrmSrc你可以(yǐ)獲取調用窗體上(shàng)所有控件及相關的(de)值,并且不(bù)需要(yào / yāo)事先知道(dào)原來(lái)窗體的(de)名稱,具有比較強的(de)通用性。