使用生成的RecordSet中的数据打开报表

时间:2014-02-05 15:48:30

标签: ms-access

我对Access,VBA和报告都很陌生。我要做的是从我创建的动态查询中获取结果,并使用该数据打开报告。

到目前为止,我的基本设置是一个包含用户输入数据的表。在月底他们应该生成一份报告。为了生成此报告,我在其后面设置了一个带有VBA的表单,以根据其输入生成查询。运行该查询后,我将其设置为打开报告。

目前我还没有想出如何使用RecordSet作为报告的数据源。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你可以做3件事之一:

1)创建一个已保存的查询,并将该查询用作报告的RecordSource。查询中的数据将更改,但查询名称不会更改。报告打开后,它将提取已保存查询的当前结果。这绝对是最简单的方法。

2)当您打开报告时,请在代码中设置其RecordSource。我认为不需要这样做。

3)如果您发现必须动态创建查询并且该查询的名称可能会更改,则可以将其作为OpenArgs传递。不过,我不会推荐这个。

答案 1 :(得分:1)

我倾向于处理这种情况的方法是在Access中创建一个保存的查询,将报告基于该保存的查询,然后在打开报告之前更新QueryDef对象的.SQL属性。 / p>

例如,对于报告[MyReport],我将创建一个名为[DataForMyReport]的保存查询,其中包含一些虚拟SQL语句。然后,当时间来运行给定查询的报告时,我会做

Dim cdb as DAO.Database, qdf as DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.QueryDefs("DataForMyReport")
qdf.SQL = strNewQueryToUse  ' replace the SQL statement with the new one
Set qdf = Nothing
DoCmd.OpenReport "MyReport"