【问题标题】:How do I access the value of a textbox control on a subform where the subform itself is just a control on another subform of the main form如何访问子窗体上的文本框控件的值,其中子窗体本身只是主窗体的另一个子窗体上的控件
【发布时间】:2019-08-16 01:58:03
【问题描述】:

我刚刚承担了多年前在 MS Access 中编写的数据库的责任,我需要进行一些更改,但不幸的是,尽管前一段时间我曾经是一位非常有经验的 Access 开发人员,但我并没有真正使用过它达到高级水平大约 15 年,我就是不知道如何做我需要的。

具体来说,我有一个名为 frmOrders 的主窗体。 在该表单上,我有一个名为 frmJobCard 的子表单。 但是 frmJobCard 本身是一个带有名为 frmSFJCOrders 的子表单的表单。 因此,当有人单击 frmOrders 上的特定按钮时,我需要能够读取 frmSFJCOrders 上文本框的值并根据该值采取行动。

到目前为止,我已经阅读了数十篇文章(包括 StackOverflow 和其他技术来源),所有这些文章都涉及从子表单上的控件读取的不同方面,我花了一天多的时间试图做到这一点,但它从来没有真正起作用,所以如果有人能告诉我我是如何读取这个值的,我将不胜感激。

我想我需要一些类似...的东西

如果 Forms.frmOrders.frmJobCard.Form.frmSFJCOrders.[估计数量] = 0 那么

...但我就是做不到。

我希望上面的代码评估为 0,然后执行下面的操作,但它总是在评估中失败

运行时错误“2465”: 应用程序定义或对象定义的错误

非常感谢任何帮助 - 在此先感谢 :)

【问题讨论】:

  • 你可以设置它,这样当文本框被填满时,它会写入一个全局变量,之后你可以用它做任何你想做的事情。
  • 谢谢,但这种方法的问题是可能会添加一个数字,然后再清除,所以我需要花时间跟踪我需要调整该全局变量的所有点基于所采取的行动。最后,这可能是我会做的,因为我认为这是一种非常明智的方法,但现在我只需要快速修复,最简单的方法是尽可能抓住价值。一旦我有时间查看代码,我会考虑重写部分代码。

标签: vba ms-access


【解决方案1】:

应该接近这个:

If Me!frmJobCard.Form!frmSFJCOrders.Form![Estimate QTY].Value = 0 Then

请注意,frmJobCard 和 frmSFJCOrders 必须是子表单控件的名称,可能与表单的名称不同。

【讨论】:

  • 谢谢,这是我回到问题时首先看到的解决方案,尽管我确信这正是我在各种尝试中至少使用过一次的格式(尽管显然我是错了,因为如果是这样,我不需要在这里发帖就可以工作)它对我来说非常有效 - 非常感谢 :)
【解决方案2】:

考虑一下这个Access MVPs resource,我在早期的 Access 编程时代将其添加为书签。具体来说,您需要! 来描述 对象和. 来描述 父/子对象之间,每个表单对象使用Form. 限定符。

If Forms!frmOrders!frmJobCard.Form!frmSFJCOrders![Estimate QTY] = 0 Then

或者,使用功能版本:

If Forms("frmOrders").Controls("frmJobCard") _
                     .Controls("frmSFJCOrders") _
                     .Controls("[Estimate QTY]") = 0 Then

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2011-07-23
    相关资源
    最近更新 更多