...

在(zài)窗體間傳遞參數的(de)幾種常用辦法

2022-01-25


在(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)通用性。

來(lái)源:51cto