ACCESS如何在窗体间传递参数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACCESS如何在窗体间传递参数

最简单的方法是使用全局变量传递,简单明了,无需复杂代码,但多窗体情况下无法确定回传对象。

例:有三个窗体FormA; FormB; FormC,都会调用窗体FormD,FormD在计算出值后无法确定回传给哪个窗体。

无需复杂代码,使用Docmd.OpenForm 的 OpenArgs 参数来传递参数,就可很好的解决。发送窗体FormA; FormB; FormC

Dim sParameter as String

sParameter = & ";" & & ";"

DoCmd.OpenForm "FormD", acForm, , , , , sParameter

接收窗体FormD - 接收

Private Sub Form_Load()

Dim sParameterA() As String

sParameterA = Split(Me.OpenArgs, ";")

ControlName.V alue = Forms(sParameterA(0)).Controls(sParameterA(1)).V alue

End Sub

接收窗体FormD - 回传

Private Sub Form_Close()

Dim sParameterA() As String

sParameterA = Split(Me.OpenArgs, ";")

Forms(sParameterA(0)).Controls(sParameterA(1)).V alue = ControlName.V alue

End Sub

该方法代码简单、回传明确、便于窗体的重复调用。

在实际开发应用中,经常需要在窗体间传递参数。常用的几种参数传递方法有如下几种: 1。使用openargs 在调用的窗体使用如下语句: doc

在实际开发应用中,经常需要在窗体间传递参数。常用的几种参数传递方法有

如下几种:

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你可以获取调用窗体上所有控件及相关的值,并且不需要事先知道原来窗体的名称,具有比较强的通用性。

应该还有更多更好的参数传递方法,不一一举例,也希望大家共同讨论这个话题,相关回复请发表评论。

相关文档
最新文档