【问题标题】:MS Access: Unbound fields in a subform not showing on a reportMS Access:子表单中的未绑定字段未显示在报告中
【发布时间】:2016-12-06 04:11:34
【问题描述】:

我在弄清楚如何解决我的 MS Access 数据库报告输出的问题时遇到了一些麻烦。

第一: 共有三种形式,其中一种用于导航目的 (HOME),在导航控件中有两个导航按钮(链接到其他两种形式中的任何一种),在子表单字段上我使用的很像 iframe。还有两份报告,其他表格各一份。

第二: 两种表格都有未绑定的文本字段,需要打印到报告输出中。无需保存这些字段或将其放入表中。 当表单被隔离时,这些表单的值可以毫无问题地打印出来(即模式、表单视图等)。未绑定字段是受控字段所在表单主体的一部分。

仅当在子表单框/iframe 的“HOME”表单中查看表单时,报告才会显示 #Name? 而不是它们的预期值。另外值得注意的是,子表单没有Link Master FieldsLink Child Fields 选项。

打印命令对象/按钮上使用的代码如下,位于非HOME表单的页脚:

Private Sub cmdPrint_Click()
    Dim strWhere As String

    If Me.NewRecord Then 'Check there is a record to print
        MsgBox "Select a record to print"
    Else
        strWhere = "[CustomerID] = " & Me.[CustomerID]
        DoCmd.OpenReport "TransferAgreement_EC", acViewPreview, , strWhere
    End If
End Sub

有什么建议吗?我试着在这里搜索并用谷歌搜索了这个问题,但我还没有找到解决我问题的方法。提前感谢您的意见!

【问题讨论】:

  • 检查你是否有记录/表锁。
  • 另外,您的报告最好基于查询。
  • 表格和表单中的每个字段都将所有锁设置为“no”。我没有锁定任何编辑。另外,我是 Access 新手,在查找打印方法时,最流行的方法是使用上面的代码。仅使用一个查询,用于从表中提取数据并填写两种形式之一。我认为,问题在于将未绑定的字段数据检索到报告中,这是由于相关表单嵌入另一个表单(HOME)中,用于导航。这是开发此应用程序的要求。
  • 检查 'Me.[CustomerID]' 的值在显示错误时生成的内容。我猜它找不到那个控件。
  • 我认为它正在查看记录的唯一键,在这种情况下是一个自动数字。打印记录信息,而不是未绑定信息。无论如何,我如何检查 Me.[CustomerID] 的值?

标签: vba ms-access ms-access-2013 ms-access-2016


【解决方案1】:

好的。所以,通过运行大量实验找到了解决方案,并修复了它。

在报表本身上,在数据字段上需要同时调用导航表单和子导航框,然后指向未绑定的字段。例如,控件源中的一个字段是:

=[Forms]![Home]![NavigationSubform].[Form]![GCSerial_1]
  • 主页 = 导航表单
  • NavigationSubform = 导航子表单框(我认为是“iframe”)
  • Form = 只是对表单的调用,不具体
  • GCSerial_1 = 未绑定的文本字段

这样,报表在不是导航表单的子表单时不会打印未绑定的字段。例如,默认情况下,我的另外两个表单是模态弹出窗口。当我将它们“形成视图”作为模式提示时,当我单击打印命令按钮时,未绑定的字段会显示 #Name?,该按钮指定了一个(不再)依赖于子表单而不是孤立表单的报告。

感谢您的帮助和启发!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多