访问OpenReport不使用Where condtion

时间:2016-01-22 14:33:09

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

这一定是一个非常简单的错误。我无法看到它。 我的字符串:

strWhere = "tbl_final.[Geschäftspartner] = " & Chr(34) & BP & Chr(34)

应该去哪里:

DoCmd.OpenReport "Contribution", acViewPreview, , strWhere

结果是报告打开...但包含所有记录。我已经玩了不同版本的SQL字符串很长一段时间,甚至将参数引入底层查询(我知道这不是解决方案)。

我没看到什么?

更新: 底层查询是直接嵌入到报表RecordSource属性

中的SQL语句

UPDATE2: 如果我创建一个仅包含字段Geschäftspartner和一个度量字段的全新报表,则代码可以正常工作。因此,错误必须由报告中的某些内容引起。

UPDATE3:链接到报告的完整查询

SELECT tbl_final.Geschäftspartner, tbl_final.Referenzwährung,    tbl_final.Periodenbeginn, tbl_final.Periodenende, tbl_final.Anlagekategorie,   tbl_final.[Produkt / ISIN], tbl_final.ISIN, tbl_final.[Telekurs Valorennummer],   tbl_final.[Asset Domicile], tbl_final.[Valor name], tbl_final.[FIRE: Kontonummer], tbl_final.[Special Fund Category], tbl_final.[FRS: Type of Collateral], tbl_final.[Nominal Currency], tbl_final.[Asset Type], tbl_final.[Anteile per Periodenende], tbl_final.[Marktwert per Periodenende], tbl_final.[Durchschn# Marktwert  in Referenzwährung], tbl_final.[Durchschnittlicher Anteil in %], tbl_final.[AVA_TER in %], tbl_final.[AVA_TER Datum], tbl_final.[VDF_TER in %], tbl_final.[VDF_TER Datum], tbl_final.[TER in %], tbl_final.[TER Datum], tbl_final.[Gewichtete TER in %], tbl_final.[TER in Referenzwährung], tbl_final.Client, tbl_final.CRM, tbl_final.[Received TER-Report for 2014], tbl_final.Language
FROM tbl_final;

2 个答案:

答案 0 :(得分:2)

在完成SQL语句并确保它在虚拟表,虚拟查询和虚拟报告上正常工作之后,我最终回到了我的VBA代码。

在那里我发现了问题:

我编写了代码,在使用Where Condition打开报表之前,以编程方式更改报表上的标签。我有以下几行代码:

DoCmd.OpenReport REPORT_NAME, acDesign
Set rptObject = Reports(REPORT_NAME)

'Various other objects being changed here but edited out for readability
'...
rptObject.OLEUnbound86.Visible = True

DoCmd.Close acForm, REPORT_NAME, acSaveYes

在最后一行,我关闭了一个FORM,而不是关闭一个REPORT。一个不存在的。不幸的是,Access从未提醒我这个事实!因此,报告保持开放,当我试图通过Where条件时,它没有将其应用于报告(大概是因为对象仍然是开放的)。

解决方案是简单地将最后一行更改为:

DoCmd.Close acReport, REPORT_NAME, acSaveYes

答案 1 :(得分:1)

使用Debug.Print查看您的strWhere,您会看到。

或尝试此修改 - 输入数字:

strWhere = "[Geschäftspartner] = " & BP & ""