2012-02-09 16 views
7

मुझे अपने टेस्ट डीबी से एक्सेस डेटा मैक्रोज़ को मेरे उत्पादन डीबी में स्थानांतरित करने की आवश्यकता है। किसी को पता है कि यह कैसे करें?एक्सेस 2010 डेटा मैक्रोज़ को कैसे निर्यात करें

मुझे पता है कि एक accdb से दूसरे में टेबल स्थानांतरित करने से डेटा मैक्रोज़ भी स्थानांतरित हो जाएंगे, लेकिन यह मेरे मामले में कोई विकल्प नहीं है। मुझे यह भी पता है कि मैं उन्हें उत्पादन accdb में मैन्युअल रूप से पुन: बना सकता हूं, लेकिन यह मुझे त्रुटियों के लिए खुला छोड़ देता है और एक स्क्रिप्टेड स्थानांतरण परिदृश्य की तुलना में उत्पादन डेटाबेस को लंबे समय तक नीचे ले जाने की आवश्यकता होती है।

यदि मुझे केवल ऐसा करना पड़ता है तो यह एक बड़ा सौदा नहीं होगा, लेकिन मुझे विकास परियोजना के दौरान कई बार ऐसा करने की आवश्यकता होगी।

मैंने एक्सएमएल को टेबल निर्यात करने का प्रयास किया है, लेकिन डेटा मैक्रोज़ शामिल नहीं हैं।

कृपया ध्यान दें कि मैं एक्सेस 2010 डेटा मैक्रोज़ के बारे में पूछ रहा हूं, नियमित एक्सेस मैक्रोज़ नहीं।

उत्तर

3

मेरे यहां कोई अच्छा जवाब नहीं है।

हालांकि, अतीत में मैंने अक्सर तालिकाओं में परिवर्तनों की "लॉग बुक" बनाई थी और फिर साइट पर इसका उपयोग सरल था।

ध्यान दें कि आप + मैक्रो कोड पेस्ट कर सकते हैं। और कोड एक्सएमएल के रूप में बचाता है।

उदाहरण के लिए, इस अद्यतन तालिका के बाद ट्रिगर Access में इस तरह दिखता है:

enter image description here

तो आप ऊपर (Ctrl-A, ctrl-सीसी) काट ,, तो आप उस में पेस्ट कर सकते हैं एक नोट पैड। वास्तव में तुम भी पेस्ट कर सकते हैं/दृश्य स्टूडियो या किसी एक्सएमएल संपादक में खोलें, और आप इस देखें:

enter image description here

तो तुम कटौती कर सकते हैं + उन मैक्रो से बाहर चिपका दें।

जैसा कि उल्लेख किया गया है, इस प्रकार अतीत में मैंने अक्सर परिवर्तनों का "लॉग" रखा था।

तो अगर मैं साइट से काम कर रहा था और मैंने 2 कोड मॉड्यूल, 4 फॉर्म और 2 रिपोर्ट संशोधित की, तो मेरे पास परिवर्तनों का थोड़ा सा लॉग था। मैं इस शीट में टाइप करूंगा कि किस वस्तु को बदल दिया गया था।

जब मैं साइट पर जाता हूं, तो मैं उस शीट पर त्वरित नज़र डालता हूं और मुझे 3-5 ऑब्जेक्ट्स आयात करना है और ऐसा आयात केवल कुछ मिनट ऊपर है।

हालांकि, तालिका ट्रिगर्स और स्टोर प्रक्रियाओं के साथ, आप प्रतिलिपि बनाने के लिए कुछ और कर सकते हैं।

मैं दो चीजों में से एक करना होगा या तो:

उपयोग लॉग विचार और

क) विकास संस्करण संयुक्त राष्ट्र प्रकाशित करें और अपने काम साइट पर वापस ला कि मेरे साथ। फिर आप नए फॉर्म, रिपोर्ट इत्यादि आयात करते हैं ट्रिगर कोड के लिए, आप दो अनुप्रयोगों के बीच + पेस्ट काटते हैं।

बी) जब आप किसी ट्रिगर में परिवर्तन करते हैं, तो + नोट पेड दस्तावेज़ में पेस्ट करें और उन्हें निर्देशिका में रखें। साइट पर, बस प्रत्येक नोटपैड लें, उत्पादन में + पेस्ट करें और फिर नोटपैड आइटम को "किए गए" फ़ोल्डर में ले जाएं या कॉपी करें।

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

तो अतीत में मैंने अक्सर लिखा था कि ऐसी और ऐसी तालिका संशोधित की गई थी और मुझे ऐसे और ऐसे कॉलम को जोड़ना होगा।

तो यह वास्तव में आपकी पसंद है कि आप कटौती करना चाहते हैं + मैक्रो कोड को अलग-अलग छोटे दस्तावेज़ों में एक्सएमएल के रूप में पेस्ट करें, या उत्पादन में विकास से बाहर पेस्ट करें।

मुझे लगता है कि यदि आप अलग-अलग स्थान पर काम कर रहे हैं, तो मुझे लगता है कि विकास संस्करण को अन-प्रकाशित करना संभव है और यह आपके साथ लाएगा (मुझे लगता है कि आप जानते हैं/वास्तविकता है कि आप एक प्रकाशित प्रकाशित प्रतिलिपि बना सकते हैं एक वेब अनुप्रयोग)।

तो फॉर्म, कोड मॉड्यूल, मैक्रो इत्यादि को केवल इतना आसान आयात किया जा सकता है (आप फॉर्म आदि हटाते हैं, और केवल उस अन-प्रकाशित प्रति से आयात करें)।

हालांकि, तालिका कोड के लिए? आपको उस गैर-प्रकाशित प्रतिलिपि से एक समय में + कुछ स्टेजिंग क्षेत्र में पेस्ट करना होगा, या अनुप्रयोगों के बीच उल्लेखित कट + पेस्ट के रूप में।

संभावना है कि पाठ को यहां से काम कर सकता है, लेकिन मेरे पास अभी तक बेहतर समाधान बनाने का समय नहीं है।

संपादित करें: वैसे, ऊपर मैंने एक वेब सेवा डेटाबेस ग्रहण किया, लेकिन सलाह अभी भी गैर वेब एक्सेस डेटाबेस पर लागू होती है।

+0

आपके समय और सभी विवरण अल्बर्ट के लिए धन्यवाद। एक्सएमएल जानकारी वास्तव में उपयोगी है। इसके अलावा Ctrl-C, Ctrl-V भी वास्तव में अच्छी तरह से काम करता है। आपकी प्रतिष्ठा के आधार पर, मैं इसे सुसमाचार के उत्तर के रूप में ले रहा हूं। धन्यवाद फिर से – unrazzle

6

आप निर्यात करने के लिए गैर-दस्तावेजी VBA कार्यों

की एक जोड़ी की कोशिश करना चाहते हो सकता है:

SaveAsText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml" 

आयात करने के लिए:

LoadFromText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml" 
4

मार्टिन पीटर्स पर विस्तार करने के लिए '/ Lanik के जवाब (धन्यवाद मार्टिजन और लानिक), मुझे 28 अलग-अलग तालिकाओं पर वही डेटा मैक्रोज़ बनाने की ज़रूरत थी, एक AfterInsert, AfterUpdate, AfterDelete, और प्रत्येक पर डेटा मैक्रो नाम दिया गया था। तो, मैं SaveAsText आदेश

SaveAsText acTableDataMacro, "TableName" का इस्तेमाल किया, "C: \ PathToFile \ DataMacro.xml"

एक खाका बनाने के लिए है, तो उस टेम्पलेट 28 एक्सएमएल बनाने के लिए इस्तेमाल फाइलों के नाम, प्राथमिक कुंजी इत्यादि को प्रतिस्थापित करने वाले छोटे वीबीए कोड के माध्यम से फ़ाइलें मैंने 28 लोडफ्रॉमटेक्स्ट कमांड भी बनाए। मैं फिर दोहराने योग्य प्रक्रिया के साथ, सभी मैक्रोज़ को लोड करने के लिए LoadFromText कमांड का उपयोग कर सकता था। अब जब मैं परीक्षण कर रहा हूं, तो मैं इस तरह से उत्पादन डेटाबेस को जल्दी से अपडेट कर सकता हूं या अन्य डेटा को आसानी से उसी डेटा मैक्रोज़ जोड़ सकता हूं।

तो दूसरों को पता है कि लोडफ्रॉमटेक्स्ट किसी भी पिछले मैक्रोज़ को ओवरराइट करता है, जो बहुत ही भयानक है क्योंकि मेरे पास पहले टेम्प्लेट पर मेरा टेम्पलेट सही नहीं था।

उपर्युक्त को देखते हुए, अगला कदम यह है कि आपका 'अपडेटर' डेटाबेस एप्लिकेशन एक DoCmd.TransferDatabase कमांड का उपयोग मॉड्यूल को सभी LoadFromText कमांड के साथ डेटा .accdb पर स्थानांतरित करने के लिए करता है। इसे फ़ंक्शन/उप चलाने के लिए मैक्रो को भी स्थानांतरित करना चाहिए। मैंने अपने अपडेटर को रखने का प्रयास किया, फिर डेटा मैक्रोज़ लोड करने के लिए मैक्रो निष्पादित किया, लेकिन एक्सेस सुरक्षा ने इसे रोक दिया। इसलिए, आपको अपने उपयोगकर्ता को डेटाबेस खोलने और इसे सक्षम करने की आवश्यकता हो सकती है, फिर मैक्रो चलाएं।यह अधिक गड़बड़ है तो अगर हम डेटा मैक्रोज़ को सीधे संपादित कर सकते हैं, लेकिन समस्या हल करने वाले वर्कअराउंड प्रदान करता है।

+0

उत्कृष्ट जवाब। आपके 'SaveAsText ACTableDataMacro' कोड का उपयोग करते समय मैं एक समस्या में भाग रहा हूं, और [मैंने यहां एक प्रश्न पोस्ट किया है] (http://stackoverflow.com/questions/31755802/can-i-use-access-vba-to -determine-अगर एक टेबल है एक डेटा-मैक्रो)। –

0

मुझे एक ही समस्या थी जिसमें xml प्रारूप में निर्यात करने के लिए सही मैक्रो खोजने में सक्षम नहीं था। हालांकि मैं अपनी क्वेरी पर राइट क्लिक करने और एक्सएमएल को निर्यात करने में सक्षम था इसलिए मुझे पता था कि यह संभव था।

हालांकि मैं इसे एक बटन से चलाने के लिए चाहता था और मुझे कोई भी वीबीए कोड लिखने के बिना ऐसा करने का एक आसान तरीका मिला।

आपको अपनी तालिका या क्वेरी पर राइट क्लिक करके मैन्युअल रूप से अपनी तालिका या क्वेरी को मैन्युअल रूप से निर्यात करने और निर्यात का चयन करने और फ़ाइल प्रकार के रूप में एक्सएमएल चुनने की आवश्यकता है। अंत में आप निर्यात चरणों को सहेजने के लिए, बस चरणों को सहेजने के लिए बॉक्स को चेक करें और निर्यात चरणों को उचित नाम दें। एक बार ऐसा करने के बाद आप RunSavedImportExport कार्रवाई का उपयोग कर मैक्रो के माध्यम से निर्यात चरणों को चला सकते हैं। बस आपके द्वारा बनाए गए सहेजे गए निर्यात का नाम चुनें जब आपने मैन्युअल रूप से निर्यात किया था। काम हो गया। उम्मीद है कि यह दूसरों की मदद करता है।

+2

एफवाईआई: डेटा मैक्रोज़ को एक्सएमएल में शामिल नहीं किया गया है - मैंने बस इसे एक्सेस 2013 पर आजमाया। – HarveyFrench

0

मैक्रो पर राइट-क्लिक करें और Export चुनें और फिर मैक्रो प्राप्त करने के लिए डेटाबेस चुनें।

+0

मुझे पता है कि नेविगेशन फलक में सूचीबद्ध नियमित मैक्रोज़ के साथ काम करता है, लेकिन यह डेटा मैक्रोज़ पर भी लागू होता है, उदाहरण के लिए, चेंज से पहले, सम्मिलित करने के बाद, ...? (मुझे नहीं लगता कि यह करता है।) –

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