所以我有一个创建记录(并记录它)的子表单,然后打开另一个子表单进行数据输入...但是我仍然可以使用open arg来传递这些子目录之间的值(ProjectID)形式。
我确切知道如何使用表单执行此操作,但尝试使用子表单时会有所不同。
docmd.openform "FormExample",,,,,,Passingvalue
但不能这样做:
me.MyChild.SourceObject = "SecondSubForm",,,,,,PassingValue
所以,对于那些知道正确方法的人来说,上述情况可能看起来很荒谬,但我认为这样可以说明我想要做的事情。
那我怎么能传递这个值呢?我甚至需要使用子表单而不是表单吗?或者这个变量是否会保留我的值,即使它是在第一个子表单中创建的?
感谢 贾斯汀
答案 0 :(得分:1)
我认为没有办法通过SourceObject =
设置SourceObject后,是否可以将值赋给控件?
Me.MyChild.SourceObject = "SecondSubForm"
Me.MyChild!SomeControl = PassingValue
答案 1 :(得分: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"