2010-11-15 9 views
7

Mam prosty formularz, kwerendę i raport w programie Access 2003. Muszę zmanipulować wyniki z kwerendy w zestawie rekordów za pomocą VBA, a następnie przekazać go do raportu jako RecordSource.Zestaw rekordów ADODB jako raport dostępu RecordSource

Jeśli zadeklaruję zestaw rekordów jako RecordSet i użyję jego właściwości Name jako RecordSource raportu, to działa. Jednakże, ponieważ muszę edytować zestaw rekordów, chociaż byłoby łatwiej użyć zestawu rekordów ADODB, jak poniżej.

Zestaw rekordów jest zadeklarowany jako Dim rs As ADODB.RecordSet w module globalnym. Reszta kodu to;

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....' 

Kiedyś przekazywałem RecordSource raportu jako myReport.RecordSource = rs.Name. Ale ADODB nie ma właściwości Name.

Jak przekazać ten zestaw rekordów do raportu jako jego RecordSource?

Dzięki

+0

Dlaczego uważasz, że masz to zrobić? Dlaczego nie możesz ustawić rekordów rekordów w zdarzeniu OnOpen raportu? –

+0

Właściwie ustawiam właściwość RecordSource raportu przy zdarzeniu otwartym raportu, ale wymaga to nazwy zestawu rekordów, a zestaw rekordów ADODB nie ma właściwości name. – Sivakanesh

+1

Mówię, nie używaj zestawu rekordów - wystarczy ustawić SQL właściwości Recordsource na SQL, którego używasz do otwarcia zestawu rekordów. Jeśli istnieje jakiś powód, który nie zadziała, nie widzę tego. Jest to standardowy sposób, aby to zrobić, zamiast ustawiania zestawu rekordów raportu (co jest czymś, czego nigdy nie musiałem robić przez wszystkie moje lata programowania dostępu do życia). –

Odpowiedz

0

nie mam kopię Access 2003 do ręki, lecz z pamięci po prostu zrobić

Set Me.Recordset = rs 

Po prostu spojrzeć na Microsoft KB i wygląda na to, moja pamięć jest wciąż pracujący!

http://support.microsoft.com/kb/281998

Powiązane problemy