我在Access 2003中有一个简单的表单,一个查询和一个报表。我必须使用VBA操作记录集中的查询结果,然后将其作为RecordSource传递给报表。
如果我将记录集声明为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传递给报表?
由于
答案 0 :(得分:5)
您无法将报告绑定到mdb中的ADO记录集,只能绑定到adp:http://support.microsoft.com/?id=287437
答案 1 :(得分:0)
我手边没有访问权限2003的副本,但是你只是从内存中获取
Set Me.Recordset = rs
刚看了一下Microsoft KB,看起来我的内存仍在运行!