Ho un semplice modulo, una query e un report in Access 2003. Devo modificare i risultati della query in un recordset utilizzando VBA e quindi passarlo al report come origine record.Record di record ADODB come record di accesso RecordSource
Se si dichiara il recordset come RecordSet e si utilizza la relativa proprietà Name come RecordSource del report, allora funziona. Tuttavia, poiché è necessario modificare il recordset, ritengo che sarebbe più semplice utilizzare un set di record ADODB come indicato di seguito.
Il set di record è dichiarato come Dim rs As ADODB.RecordSet
in un modulo globale. Il resto del codice è;
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....'
Ho usato per passare il RecordSource del report come myReport.RecordSource = rs.Name. Ma l'ADODB non ha una proprietà Name.
Come posso passare questo recordset al report come origine record?
Grazie
perché pensi che devi fare questo? Perché non puoi semplicemente impostare la Recordsource nell'evento OnOpen del report? –
In realtà sto impostando la proprietà RecordSource del report all'evento aperto del report, ma richiede il nome del set di record e ADODB Recordset non ha una proprietà name. – Sivakanesh
Sto dicendo che non usare un recordset - basta impostare l'SQL della proprietà Recordsource come SQL che si sta utilizzando per aprire il recordset. Se c'è qualche motivo per cui non funzionerà, non lo vedo. Questo è il modo standard per farlo, invece di impostare il Recordset del report (che è qualcosa che non ho mai avuto bisogno di fare in tutti i miei anni di programmazione Access for a living). –