我在Access 2003中有一个简单的表单,查询和报告。我必须使用VBA在记录集中处理查询的结果,然后将其作为RecordSource传递给报告。ADODB RecordSet作为访问报告RecordSource
如果我将Recordset声明为RecordSet并使用它的Name属性作为报表的RecordSource,那么它正在工作。但是,因为我需要编辑记录集,所以我认为使用ADODB RecordSet会更容易一些,如下所示。
记录集在全局模块中声明为Dim rs As ADODB.RecordSet
。 其余的代码是;
Dim db As Database
Set db = CurrentDb
Dim con As ADODB.Connection
Set con = CurrentProject.Connection
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = con
rs.Source = "Select * from XXX"
rs.LockType = adLockOptimistic
rs.CursorType = adOpenKeyset
rs.Open
'manipulate rs here....'
我用来传递报告的RecordSource作为myReport.RecordSource = rs.Name。 但是ADODB没有Name属性。
如何将此记录集作为RecordSource传递给报表?
感谢
为什么你认为你这样做吗?为什么不能在报告的OnOpen事件中设置Recordsource? – 2010-11-15 21:53:07
我实际上是在报表的打开事件中设置报表的RecordSource属性,但它需要记录集的名称,ADODB Recordset没有名称属性。 – Sivakanesh 2010-11-17 08:02:25
我在说不要使用记录集 - 只需将Recordsource属性的SQL设置为用于打开记录集的SQL即可。如果有某些原因不起作用,我不会看到它。这是做这件事的标准方式,而不是设置报告的记录集(这是我多年来为编程生活编程而不需要做的事情)。 – 2010-11-18 04:09:21