我在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