So I have a sub form that creates a record (and record it), and then another sub form opens up for data entry...however can I still use an open arg to pass the value (ProjectID) between these sub forms.
I know exactly h开发者_StackOverflow社区ow to do this with forms, but trying this with subforms is a little different.
docmd.openform "FormExample",,,,,,Passingvalue
but can't do it like this:
me.MyChild.SourceObject = "SecondSubForm",,,,,,PassingValue
so yeah the above might look ridiculous to those who know the right way, but I thought that this would illustrate exactly what I am trying to do.
So how can I pass the value? Do I even need to with subforms instead of forms? or would this variable hold my value even though it was created in the first sub form?
thanks justin
I don't think there's any way to pass an OpenArg with SourceObject =
Can it work to assign the value to a control after you set the SourceObject?
Me.MyChild.SourceObject = "SecondSubForm"
Me.MyChild!SomeControl = PassingValue
Rather than using a Hidden control as an alternative you can add a public method or public property to the Child form and then call it.
Personally I prefer to use a method because typically mutating a property shouldn't have side-effects.
Here's an example.
The child form Called SomeChildForm will have this method
Public Sub SetSomeValue(ByVal somestring As String)
Me.Text1.Text = somestring 'or probably something to do with the record source
End Sub
From the parent you do this
Dim frm As Form_SomeChildForm
Set frm = Me.SubFormControlName.Form
frm.SetSomeValue "x"
精彩评论