我有一份包含子报告的报告。报告未绑定(它用作字母的模板,仅包含纯文本)。子报表中的值基于位于表单中的两个组合框的值。
所以逻辑如下 - 当加载表单(frmForReport)时,用户选择用于过滤数据库的组合框中的值(cboSelectCompany和cboSelectPU),然后单击OK按钮,打开我的报告及其子报表。从一个查询中填充子报表,其中两个字段将这些组合框作为条件。一切正常(我在组合框中选择了我需要的内容,报表在报表视图中打开,子报表显示所有已过滤的记录,没有任何警告或请求),直到我想切换到打印预览或创建PDF 。每当我这样做时,我会看到弹出窗口输入参数值,并引用子报表中使用的标准之一。当我关闭此窗口时,我可以继续进行,将其保存为pdf或切换到报表视图,但子报表显示为空白,文学消失。
这适用于Access 2010.以下是用作子报表的记录源的查询:
SELECT qryForLetter.CrossingID, qryForLetter.DispID, qryForLetter.AgreType, qryForLetter.Legal
FROM qryForLetter
WHERE (((qryForLetter.Company)=[Forms]![frmForReport]![cboSelectCompany]) AND ((qryForLetter.PU)=[Forms]![frmForReport]![cboSelectPU]));
我想念什么?如何摆脱这个弹出窗口?非常感谢任何帮助。
答案 0 :(得分:0)
您可以尝试用函数替换参数[Forms]![frmForReport]![cboSelectCompany])
和[Forms]![frmForReport]![cboSelectPU]
。
在模块的标题中创建全局变量:
Public Company As ...
Public PU As ...
...用正确的数据类型替换省略号...
。
在组合框的AfterUpdate事件中,将与Combo关联的值分配给适当的全局变量,例如:
Company = cboSelectCompany
和
PU = cboSelectPU
并创建函数(再次使用正确的数据类型替换省略号...
):
Public Function fnCompany() As ...
fnCompany = Company
End Function
Public Function fnPU() As ...
fnPU= PU
End Function
然后将数据源更改为:
SELECT qryForLetter.CrossingID, qryForLetter.DispID, qryForLetter.AgreType, qryForLetter.Legal
FROM qryForLetter
WHERE (((qryForLetter.Company)=fnCompany()) AND ((qryForLetter.PU)=fnPU()));
这样可以消除表单字段中报表的依赖性,这似乎是个问题。