【问题标题】:How to pass value from subform to mainform ms access如何将值从子窗体传递到主窗体 ms 访问
【发布时间】:2018-12-13 07:56:21
【问题描述】:

我有一个带有子表单的表单(数据表视图表单)。当我单击子窗体中的一行时,我想将该行值传递给主窗体中的文本框。在子窗体中甚至写了这个

 Private Sub Form_Click()
 MsgBox (Noloan)
 End Sub

但我不知道如何将该子表单 form_click no_loan 传递给 mainform.textbox。谢谢你的帮助。 附加数据:在我的数据库中,我有一个包含字段 No、NoLoan、Name 的表。我想单击的 NoLoan 字段值。从该表中,我创建了一个子表单/数据表视图,子表单名称为 T_Loan1。然后我创建主窗体,名称为 FindLoan2。在该主/父表单中,我创建了名为 Text7 的文本框,并将 T_Loan1 放在页脚的子表单对象中。

【问题讨论】:

  • 文本框可以有一个引用子表单中控件的表达式。但这通常是针对在子表单中计算的值进行的。你真正想要完成什么?
  • 只需将我在子表单(数据表视图)中单击的行(一个字段)中的值传递给父/主表单中的文本框。
  • 但是为了什么目的?您是否真的试图将此值保存到字段中?为什么?
  • 我正在尝试在传递该值后过滤表
  • 试试:Me.Parent.Text7 = Me.ID.

标签: ms-access


【解决方案1】:

我放这个

=[Forms]![FindLoan2]![subformTLOAN].[Form]![Noloan]

在我的 Text7 控件中,它的工作。 感谢大家的关注。

【讨论】:

  • 我的第一条评论表明这应该是可行的。大概可以简化为:[subformTLOAN]![Noloan].
【解决方案2】:
  1. 转到子表单并单击具有行值的字段
  2. 选择字段属性 - 单击事件选项卡 --> 单击时 --> 代码生成器
  3. 将以下代码放入 Click 事件中,其中 Form_frmMain 是您的表单名称,Me.ID 是字段。

Private Sub ID_Click()
   Forms!FindLoan2.Text7 = Me.ID
End Sub

【讨论】:

  • 不工作,需要错误对象。我的主要表单名称是 FindLoan2,文本框名称是 Text7。所以我写了
  • 不工作,需要错误对象。我的主要表单名称是 FindLoan2,文本框名称是 Text7。所以我写了 FindLoan2.Text=Me.Id
  • @user3744203 您提供的字段名称可能不正确。具有行值的字段的名称是什么?
  • @user3744203,您应该编辑问题以提供有关您的数据库以及修改后的代码和错误消息的其他信息。
【解决方案3】:

最好的方法是编写忽略forms!names 的代码。如果您复制表单,或更改子表单,甚至将子表单放入不同的表单,那么您的所有代码都会中断。

要从代码中引用父表单中的文本框,请使用:

me.Parent!Text7 = me!id

【讨论】:

    【解决方案4】:

    我不确定您使用的是哪个版本的 MS Access,但如果您有一个复杂的应用程序,这使得引用另一个表单/字段/控件变得困难,也可以使用 Tempvars 存储值以供其他地方使用。

    创建:

    Tempvars.Add "TempVarName", TempvarValue
    

    使用方法:

    Tempvars!TempVarName
    

    删除:

    Tempvars.Remove "TempVarName
    

    我试图限制我对它们的使用,因为它变得难以管理。我在设置值时总是很小心,并确保在完成它们后将它们删除,以避免混淆或值在不应该持续存在时出现问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-23
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2016-02-29
      相关资源
      最近更新 更多