2010-11-15 29 views
7

Access 2003'te basit bir form, bir sorgu ve bir rapor var. VBA kullanarak bir kayıt kümesindeki sonuçları bir kayıt kümesinde işlemek ve daha sonra bu raporu RecordSource olarak iletmek zorundayım.ADODB Kayıt Raporu Olarak Kayıt Raporu Kayıt Kaynağı

Kayıt kümesini RecordSet olarak bildirir ve Name özelliğini raporun RecordSource olarak kullanırsa, o zaman çalışır. Ancak, kayıt kümesini düzenlemem gerektiğinden, bir ADODB RecordSet'i aşağıdaki gibi kullanmak daha kolay olurdu.

Kayıt kümesi, global bir modülde Dim rs As ADODB.RecordSet olarak bildirilmiştir. Kodun geri kalanı;

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

Raporun Kayıt Kaynağı'nı myReport.RecordSource = rs.Name olarak geçirirdim. Ancak, ADODB'nin bir Name özelliği yoktur.

Bu kayıt kümesini RecordSource olarak rapora nasıl aktarabilirim? Hafızam hala gibi

Teşekkür

+0

Neden bunu yapmak zorunda düşünüyorsunuz? Neden Recordsource'u raporun OnOpen etkinliğine yerleştiremiyorsunuz? –

+0

Aslında raporun açık olayında raporun RecordSource özelliğini ayarlıyorum, ancak kayıt kümesinin adını ve ADODB Recordset'in bir name özelliğinin olmaması gerekir. – Sivakanesh

+1

Bir recordset kullanmayın demiyorum - Recordset özelliğini açmak için kullanmakta olduğunuz SQL'in SQL değerini ayarlamanız yeterlidir. Çalışmayacak bir sebep varsa, onu göremiyorum. Bu, raporun Recordset'ini (yaşam boyu Access programlama programımın yıllar boyunca yapmam gereken bir şey) ayarlamak yerine, bunu yapmanın standart yoludur. –

cevap

5

yalnızca bir ADP, bir mdb bir ADO kayıt için bir rapor bağlanılamıyor: http://support.microsoft.com/?id=287437

+1

Evet, bir ADODB ile mümkün değil. Bu yüzden bir tablo tablosu sorgusu oluşturdum ve içindeki verileri işledim. Sonra raporu sadece bu tabloya bağladım. – Sivakanesh

0

elimde erişim 2.003 bir kopyası yok ama bellekten sadece

Set Me.Recordset = rs 

Sadece Microsoft KB bir göz vardı yapmak ve görünüşe Çalışma!

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