2

所以我有一个创建记录(并记录它)的子表单,然后打开另一个子表单用于数据输入......但是我仍然可以使用打开的 arg 在这些子表单之间传递值(ProjectID)。

我确切地知道如何使用表单来执行此操作,但尝试使用子表单会有所不同。

docmd.openform "FormExample",,,,,,Passingvalue

但不能这样做:

 me.MyChild.SourceObject = "SecondSubForm",,,,,,PassingValue

所以是的,对于那些知道正确方法的人来说,上面的内容可能看起来很荒谬,但我认为这将准确地说明我正在尝试做的事情。

那么如何传递价值呢?我什至需要使用子表单而不是表单吗?或者即使它是在第一个子表单中创建的,这个变量是否会保留我的值?

谢谢贾斯汀

4

2 回答 2

1

我认为没有任何方法可以通过 OpenArgSourceObject =

设置 SourceObject 后,是否可以将值分配给控件?

Me.MyChild.SourceObject = "SecondSubForm"
Me.MyChild!SomeControl = PassingValue
于 2010-11-06T04:54:38.713 回答
1

您可以将公共方法或公共属性添加到子窗体然后调用它,而不是使用隐藏控件作为替代。

我个人更喜欢使用一种方法,因为通常改变属性不应该有副作用。

这是一个例子。

名为 SomeChildForm 的子窗体将具有此方法

Public Sub SetSomeValue(ByVal somestring As String)

     Me.Text1.Text = somestring 'or probably something to do with the record source

End Sub

从父母那里你这样做

Dim frm As Form_SomeChildForm
Set frm = Me.SubFormControlName.Form
frm.SetSomeValue "x"
于 2011-06-05T04:38:41.027 回答