我想作为参数传递三个参数(userlanguage,父窗体的名称和祖父窗体名称的名称) 我能做两个前者而不是后者。
我尝试使用Me.Parent.name
返回父级表单的名称,但如果它没有附加到控件上则不起作用 -
这是一个示例:
Private Sub btnNoInterruptRational_Click()
Dim grandParentName As String
grandParentName = Me.Parent.name
If (Me.OpenArgs = "English") Then
DoCmd.OpenForm "frmP2CQ", acNormal, , , acEdit, _
, "English|" & grandParentName
End If
If (Me.OpenArgs = "French") Then
DoCmd.OpenForm "frmP2CQ", acNormal, , , acEdit, _
, "French|" & grandParentName
End If
End Sub
答案 0 :(得分:3)
我有一个名为 frmGrandparent 的表单。它包含一个名为 frmParent 的子表单。 frmParent 包含一个名为 fsubColortable 的子表单。
我在 fsubColortable 的Form Open事件中设置了一个断点。然后在立即窗口中,检查Parent.Name
和Parent.Parent.Name
属性...
? Me.Name
fsubColortable
? Me.Parent.Name
frmParent
? Me.Parent.Parent.Name
frmGrandparent
因此Me.Parent.Parent.Name
可以为您提供顶级(祖父母)表单的名称。我不明白为什么你的尝试失败了。我建议你测试一个简化版的程序,它只关注Parent.Parent.Name
...暂时忽略所有其他的东西。
如果在这个简单版本中仍然无法从Me.Parent.Parent.Name
获得您想要的内容,请提供详细信息(例如错误消息),以便我们找出失败的原因。
如果简单版本正常运行,则问题在于您如何在原始版本中使用Me.Parent.Parent.Name
。关于问题性质的更具体细节应该有所帮助。
答案 1 :(得分:-1)
您似乎需要关闭OpenArgs。例如:
DoCmd.OpenForm "frmP2CQ", acNormal, , , acEdit, _
, "French|" & grandParentName
应该是
DoCmd.OpenForm "frmP2CQ", acNormal, , , acEdit, _
, "French|" & grandParentName & ""