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
Dlaczego uważasz, że masz to zrobić? Dlaczego nie możesz ustawić rekordów rekordów w zdarzeniu OnOpen raportu? –
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
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). –