访问非相关表单之间的传递值

Posted

技术标签:

【中文标题】访问非相关表单之间的传递值【英文标题】:access passing values between non related forms 【发布时间】:2013-06-14 19:03:25 【问题描述】:

我有一个主窗体,1,里面有一个子窗体,2,和一个弹出窗体,3。

form 2form 3 是数据表。 form 1 中的按钮打开弹出窗口form 3

现在,在 form 2 中,我捕获当前选择的记录并使用以下 code 设置查询:

查询是一个名为 strSQL 的 var。

是否可以将 strSQL 设置为 form 2 的属性,以便我可以将 form 3 记录源设置为 Forms!1!2.forms!strSql ?如果不是,我有哪些将数据从 form 2 移动到 form 3 的选项,它们不相关,因此我无法使用 OpenArgs。

【问题讨论】:

【参考方案1】:

您可以将 OpenArgs 用于这样的事情。如果需要,可以在 OpenArgs 中传递 SQL 字符串。事实上,您可以在 OpenArgs 中传递 MULTIPLE SQL 字符串,只要您正确解析它们。我有一个应用程序,我使用 OpenArgs 将 3 个变量传递给另一个表单,并用管道分隔它们(也就是说,我使用管道键“|”分隔每个变量,然后在它们到达另一个表单时将它们解析出来) .您绝对可以使用这种方法来完成您想要做的事情。

例如,我正在使用此代码将表单、子表单和字段名称传递给新表单:

DoCmd.OpenForm stDocName, , , , , , stForm & "|" & stField & "|" & stSubForm

当我打开该表单时,我正在使用以下代码解析这些值:

strForm = Left(Me.OpenArgs, InStr(Me.OpenArgs, "|") - 1)
Brk1 = Mid(Me.OpenArgs, InStr(Me.OpenArgs, "|") + 1)
strField = Left(Brk1, InStr(Brk1, "|") - 1)
strSubForm = Mid(Brk1, InStr(Brk1, "|") + 1)

【讨论】:

嗯,问题是,strSql 在 form 2 中,而 form 1 是打开的弹出窗口 3。我正在尝试通过从 form 2 直接到 form 3 的字符串,我不能在那里使用 openArgs。感谢您的管道提示,这真的很有用! 尝试在表单 1 上放置一个隐藏的文本框,当您在表单 2 中捕获当前选定的记录时,该文本框会更新。然后您可以轻松地将该文本框的内容传递给表单 3。我确实做到了之前。 成功了!在 form 2 我使用了Me.Parent!txtPhoneNumber = strSQL,然后查询访问 form 1 并检索值,谢谢!

以上是关于访问非相关表单之间的传递值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS 访问中过滤负载?

我如何从一种形式访问变量到另一种形式

无法使用键阵列子集访问数组中的表单值

访问:从表单传递参数到查询

访问VBA:将表单/子表单名称传递给函数?

使用基于传递查询的表单访问 2010 膨胀