2010-11-15 12 views
7

मेरे पास एक साधारण रूप, एक क्वेरी और एक्सेस 2003 में एक रिपोर्ट है। मुझे वीबीए का उपयोग करके एक रिकॉर्डसेट में क्वेरी से परिणामों में हेरफेर करना होगा और फिर इसे रिपोर्ट पर अपने रिकॉर्डसोर्स के रूप में पास करना होगा।एडीओडीबी रिकॉर्डसेट एक्सेस रिपोर्ट रिकॉर्डसोर्स

यदि मैं रिकॉर्डसेट को रिकॉर्डसेट के रूप में घोषित करता हूं और रिपोर्ट के रिकॉर्डसोर्स के रूप में अपनी नाम संपत्ति का उपयोग करता हूं तो यह काम कर रहा है। हालांकि, क्योंकि मुझे रिकॉर्डसेट को संपादित करने की आवश्यकता है, हालांकि मुझे नीचे एडीओडीबी रिकॉर्डसेट का उपयोग करना आसान होगा।

रिकॉर्ड सेट को वैश्विक मॉड्यूल में 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....' 

मैं के रूप में myReport.RecordSource = rs.Name रिपोर्ट के RecordSource पारित करने के लिए इस्तेमाल किया। लेकिन एडीओडीबी में नाम संपत्ति नहीं है।

मैं इस रिकॉर्डसेट को रिपोर्ट में अपने रिकॉर्डसोर्स के रूप में कैसे पास कर सकता हूं?

धन्यवाद

+0

क्यों आपको लगता है कि आप यह करना है? रिपोर्ट के ओपन ओपन ईवेंट में आप रिकॉर्ड्स संसाधन क्यों सेट नहीं कर सकते? –

+0

मैं वास्तव में रिपोर्ट की खुली घटना में रिपोर्ट की रिकॉर्डसोर्स प्रॉपर्टी सेट कर रहा हूं, लेकिन इसके लिए रिकॉर्ड सेट का नाम और एडीओडीबी रिकॉर्ड्स के नाम की संपत्ति नहीं है। – Sivakanesh

+1

मैं कह रहा हूं कि एक रिकॉर्डसेट का उपयोग न करें - केवल रिकॉर्ड्ससोर्स प्रॉपर्टी का एसक्यूएल सेट करें जिसे आप अपने रिकॉर्डसेट को खोलने के लिए उपयोग कर रहे हैं। अगर ऐसा कोई कारण है जो काम नहीं करेगा, तो मुझे यह नहीं दिखाई देता है। यह रिपोर्ट करने के लिए मानक तरीका है, रिपोर्ट के रिकॉर्ड्ससेट को सेट करने के बजाय (जो कुछ ऐसा है जो मुझे अपने जीवन के सभी कार्यक्रमों में रहने के लिए कभी भी जरूरी नहीं है)। –

उत्तर

5

आप केवल एक ADP में, एक mdb में कोई ADO recordset को एक रिपोर्ट बाध्य नहीं कर सकते हैं: http://support.microsoft.com/?id=287437

+1

हाँ, एडीओडीबी के साथ संभव नहीं है। तो मैंने अभी एक मेक टेबल क्वेरी बनाई है और उसमें डेटा का उपयोग किया है। फिर बस उस तालिका में रिपोर्ट को बाध्य करें। – Sivakanesh

0

मैं हाथ करने के लिए उपयोग 2003 के एक प्रति है नहीं करते हैं लेकिन स्मृति से तुम सिर्फ

Set Me.Recordset = rs 

बस पर Microsoft KB एक नज़र था करते हैं और ऐसा लगता है कि मेरी स्मृति की तरह अब भी है काम कर रहे!

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

संबंधित मुद्दे