试图打开特定记录的报告,但它一直显示所有记录 - 有点?
Posted
技术标签:
【中文标题】试图打开特定记录的报告,但它一直显示所有记录 - 有点?【英文标题】:Attempting to open report to specific record but it keeps showing all records - sort of? 【发布时间】:2019-01-24 16:27:05 【问题描述】:我有一个包含几个子报表的报表,它们都是从同一个表中提取数据。我将它们制作为子报告的唯一原因是使用 Access 创建报告时的大小限制(21 英寸问题)。我有从另一个表单(frmWorkOrders
但我不认为这并不重要)加载的表单(frmService
),它在tblServiceRecord
中显示了一条记录。表单正确打开,对同一条记录正确操作,但是在frmService
上,我有一个控件(按钮)可以打开报告(rptServiceRecord
),因此我们可以为客户打印记录。无论如何,报告总是会显示每条记录的一部分,但不会显示多条记录的所有部分。
我有几个子报告(srptFirstStage
、srptSecondStage
等),打印每条记录的仅有两个子报告是上面列出的两个。所有其他子报表只打印我希望它打印的关联记录,即使数据库中有多个记录。最奇怪的部分,也是让我无法解决这个问题的部分,是所有子报告都是平等创建的。报告本身有一个过滤器(见下面的代码),但没有一个子报告有这个过滤器。我也将过滤器负载检查为Yes
。我还尝试使用以下 SQL 使用查询来创建此报告:
SELECT tblServiceRecord.*, tblWorkOrder.Task, [FName] & " " & [LName] AS FullName, "WD0" & [tblWorkOrder]![ID] AS WorkOrder
FROM tblServiceRecord INNER JOIN (tblCustomers RIGHT JOIN tblWorkOrder ON tblCustomers.ID = tblWorkOrder.CustomerID) ON tblServiceRecord.WorkOrderID = tblWorkOrder.ID
WHERE (((tblServiceRecord.WorkOrderID)=[Forms]![frmService]![txtWO]));
在数据表视图中显示查询会显示正确的信息,并且不会列出表中的多行。所以我不完全确定为什么报告确实显示多行,即使第二行 srptFirstStage
和 srptSecondStage
显示为空白。
要从我使用的控件打开报告 (rptServiceRecord
):
Private Sub Command275_Click()
On Error GoTo Command275_Click_Err
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "rptServiceRecord", acViewPreview, , "[WorkOrderID] = Forms.[frmService].[txtWO]", acNormal
Command275_Click_Exit:
Exit Sub
Command275_Click_Err:
MsgBox Error$
Resume Command275_Click_Exit
End Sub
【问题讨论】:
【参考方案1】:如果WorkOrderID
是数字字段,请尝试以下操作:
DoCmd.OpenReport "rptServiceRecord", acViewPreview, , "[WorkOrderID] = " & Forms("frmService")("txtWO").Value, acNormal
如果WorkOrderID
是一个字符串字段,试试这个:
DoCmd.OpenReport "rptServiceRecord", acViewPreview, , "[WorkOrderID] = '" & Forms("frmService")("txtWO").Value & "'", acNormal
【讨论】:
我编辑了我的答案。问题在于对表单及其控件的引用。 可能报告中有代码,禁用过滤器? 我在您的报告中看到的唯一内容是您没有为前两个 SubReport 对象(即srptFirstStage
和Child434
)设置Link Master Fields
和Link Child Fields
。我想它们也应该设置为WorkOrderID
,就像其他 SubReport 对象一样,对吧?没有它,它们与主报告之间就没有关联。
宾果游戏!字段的链接是错误的 - 谢谢!以上是关于试图打开特定记录的报告,但它一直显示所有记录 - 有点?的主要内容,如果未能解决你的问题,请参考以下文章