【发布时间】:2016-12-06 04:11:34
【问题描述】:
我在弄清楚如何解决我的 MS Access 数据库报告输出的问题时遇到了一些麻烦。
第一: 共有三种形式,其中一种用于导航目的 (HOME),在导航控件中有两个导航按钮(链接到其他两种形式中的任何一种),在子表单字段上我使用的很像 iframe。还有两份报告,其他表格各一份。
第二: 两种表格都有未绑定的文本字段,需要打印到报告输出中。无需保存这些字段或将其放入表中。 当表单被隔离时,这些表单的值可以毫无问题地打印出来(即模式、表单视图等)。未绑定字段是受控字段所在表单主体的一部分。
仅当在子表单框/iframe 的“HOME”表单中查看表单时,报告才会显示 #Name? 而不是它们的预期值。另外值得注意的是,子表单没有有Link Master Fields 或Link 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