【问题标题】:Copy textbox in popup to a 3rd level subform将弹出窗口中的文本框复制到第三级子表单
【发布时间】:2021-10-07 11:27:08
【问题描述】:

我正在尝试将数据从弹出表单的文本框中复制到第三级子表单的文本框中。当我从父级打开弹出窗口时,代码有效,但嵌套时无效。

If (Forms!frmFeeEntry!txtAmount_Total.Value = 0) Then
    Call cmdCancel_Click
Else
    Forms!frmEnter!txtFeeCount.Value = Forms!frmFeeEntry!txtCount_Total.Value
    Forms!frmEnter!txtFeeAmount.Value = Forms!frmFeeEntry!txtAmount_Total.Value
    DoCmd.Close acForm, "frmFeeEntry"
End If

层次结构:frmEnter 子窗体 navMain 子窗体 navRoot。 frmFeeEntry 是一个仅在 frmEnter 中可用的弹出窗口。

我已经搜索了几天来找到合适的组合来完成这项工作。我尝试了以下变体:

Forms!navRoot!navMain.Form!frmEnter!txtFeeCount.Value

任何帮助将不胜感激。

【问题讨论】:

  • 引用子窗体时,必须引用子窗体容器控件。如果容器具有 Access 分配的默认名称,可能类似于:Forms!navRoot.NavigationSubform.Form.txtFeeCount。但这仅适用于第二级形式。
  • 你是对的!如果我从第二级运行,这确实有效:Forms!navMain.NavigationSubform.Form.txtFeeCount

标签: vba ms-access subform


【解决方案1】:

喂,

如果我在哪里,我将使用附加表来保存来自 txtFeeCount 的值或任何其他值。然后,当您需要子表单中的值时,您可以在那里获取它...

祝你好运。

【讨论】:

  • 也许我需要这样做。只是希望我能找到一个直接的方法。
【解决方案2】:

关键是命名两个导航子表单以允许数据库区分。

If (Forms!frmFeeEntry!txtAmount_Total.Value = 0) Then
    Call cmdCancel_Click
Else
    Forms!navRoot!navsubRoot.Form!navsubMain.Form.txtFeeCount.Value = Forms!frmFeeEntry!txtCount_Total.Value
    Forms!navRoot!navsubRoot.Form!navsubMain.Form.txtFeeAmount.Value = Forms!frmFeeEntry!txtAmount_Total.Value
    DoCmd.Close acForm, "frmFeeEntry"
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    相关资源
    最近更新 更多