【问题标题】:Microsoft Access - Navigation form is causing my query to not workMicrosoft Access - 导航表单导致我的查询不起作用
【发布时间】:2014-11-03 19:30:30
【问题描述】:

我得到了一个单独运行的表单,但第二次我将它附加到我的导航表单中。从这一行开始,我开始提示用户输入

[Forms]![frm_addReceiveReportInformation]![cbo_PurchaseOrderID]

由于当前表单成为导航表单中的子表单,因此不再起作用 ACCESS 2010 Navigation Form Query Property

我似乎想不出使用 !form 的方法,因为我绝对需要从组合框中检索 ID 以更新另一个组合框。

我尝试了多种使用 !forms 的方法,但我似乎无法理解如何检索我正在寻找的信息。

我有 2 路导航菜单(垂直 + 水平选项卡)。任何人得到建议或在通行证中遇到过这个问题,谁可以指导我正确的道路。

【问题讨论】:

  • 引用该组合框的代码在哪里?如果它在“frm_addReceiveReportInformation”中,为什么不直接引用为“Me.cbo_PurchaseOrderID”?
  • @WayneG.Dunn 直接在另一个组合框的查询中。
  • 我需要澄清所有东西的位置。您有一个名为“frm_addReceiveReportInformation”的表单,效果很好。现在您已将其设为子表单,但它不起作用。两个组合框都在子窗体上,还是在父窗体上?哪个组合框不起作用?
  • @WayneG.Dunn 该表单不是子表单,但是当您将其附加到导航表单时,它在技术上就变成了子表单。对我措辞不好的描述感到抱歉。两个组合框都在同一个表单上。我在主帖中添加了一张图片。
  • 零件代码 CBO 依赖于来自 PO 编号 CBO 的 ID。

标签: sql forms ms-access ms-access-2010


【解决方案1】:

要访问附加到导航选项卡的表单内的字段,您应该使用以下结构:

[Forms]![YourNavigationTab]![NavigationSubform].[Form]![YourField]

注意:在 MS Access 2013 中测试

【讨论】:

    【解决方案2】:

    为了使包含表单引用的查询能够正常工作,表单必须完全加载。我认为您遇到的问题是在加载表单之前正在评估零件代码组合的行源中的查询,因此要求您输入参数值。

    您可以通过将 Part Code 组合的 Row Source 属性留空直到它第一次获得焦点来解决此问题,例如:

    Private Sub cboPartCode_GotFocus()
      If Len(cboPartCode.RowSource) = 0 Then
        cboPartCode.[RowSource] = "Your Query"
        cboPartCode.Requery
      End If
    
    End Sub
    

    【讨论】:

    • 它没有加载,它是在我从第一个组合框中选择我的 PO 号码之后,因为它在导航表单中。它无法再检索 ID。
    • 你能告诉我整个查询吗?查询是在第一个组合还是第二个?
    • 它在第二个。 SELECT tbl_rawItemList.ID, tbl_rawItemList.ItemSerialCode, [yarnType] & " " & [yarnSize] & " " & [colour] & " " & [description] AS [Desc] FROM tbl_rawItemList INNER JOIN tbl_PODetails ON tbl_rawItemList.ID = tbl_PODetails.rawItemListID WHERE (((tbl_PODetails.purchaseOrderID)=[Forms]![frm_mainNavigation]![frm_addReceiveReportInformation].[form]![cbo_PurchaseOrderID])) ORDER BY tbl_rawItemList.ItemSerialCode;
    • 我注意到您现在正在使用 SubForm 语法。这行得通吗?
    【解决方案3】:

    我有时只是在导航表单上放一个按钮,它将所需的表单作为独立表单打开。这可能不是最简洁的解决方案,但确实有效。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多