在我提出这个问题之前,这里是对正在发生的事情的概述。
具有选择JobId
的ComboBox的表单报告来自多个表的信息,所有表都基于JobID
一个表单(使用Crystal Reports插件),它在Crystal Reports Designer应用程序之外显示报告。
我需要将VB中显示的报告过滤到Access ComboBox中选择的作业。
<击> 撞击>
<击>我将我的数据库链接到VS2012,这没有任何问题。我可以轻松地从表中提取信息。我需要做的是将ComboBox 从 访问表单 链接到 VS2012 以过滤报告。
我希望这会让我的问题更加清晰。
击>
我能够弄清楚如何基于Access中的ComboBox的值创建 SELECT 查询,所以我应该可以使用它来访问我正在寻找的值,但是我仍然需要知道如何使用该值作为CR的过滤器...
答案 0 :(得分:1)
一种可能的解决方案是在Access中创建一个保存的Select Query,在CR中复制查询,并将该查询命名为[JobReport_base]。然后,在Access中创建另一个保存的选择查询并将其命名为[JobReport_current]。在Access表单中添加一些代码,用于更新[JobReport_current]查询的.SQL
属性,只返回所选[JobId]的记录,如
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("JobReport_current")
qdf.SQL = "SELECT * FROM JobReport_base WHERE JobId = " & cbxJobId
Set qdf = Nothing
然后更新Crystal Report以从[JobReport_current]查询而不是单个表中提取数据。
答案 1 :(得分:0)
多种解决方案。在您的情况下,最简单的是:
您还可以在报告中添加一个参数(我们称之为'PAR_yourCombobox')。在VB代码中访问报表时,只需将参数值设置为屏幕上的值即可。据我记得,它应该看起来像:
yourReport.parameterFields(i)。addCurrentValue yourForm.controls(“yourCombobox”)。value