2010-04-25 11 views
6

प्रबंधित करें हमारे पास स्प्रेडशीट्स में बहुत से वीबीए कोड हैं और बहुत से लोग उन्हें स्थानीय ड्राइव में सहेजते हैं। जब हम स्प्रैडशीट को अपग्रेड करना चाहते हैं तो हम एक साझा संस्करण में एक नया संस्करण डालते हैं लेकिन स्प्रेडशीट के पुराने संस्करणों का उपयोग न करने के लिए कोई भी तरीका नहीं है।स्प्रेडशीट वर्जनिंग

क्या वीबीए स्प्रेडशीट्स को तैनात करने के लिए यहां कुछ बेहतरीन अभ्यास है, इसलिए यदि कोई पुराना संस्करण लोड करता है तो यह खुला नहीं होगा या आपको अपग्रेड करने के लिए कहेगा। ऐसा लगता है कि यह किसी भी कस्टम समाधान के लिए एक मुद्दा होना चाहिए, इसलिए एमएस के माध्यम से मेरे पास कुछ समाधान होगा।

माइक्रोसॉफ्ट इस के लिए एक मानक संस्करण/तैनाती समाधान है या मैं कुछ घर विकसित समाधान के साथ (स्प्रेडशीट पिंग्स एक डेटाबेस स्टार्टअप पर संस्करण की जांच करने के लिए)

+1

वीएसटीओ आपके द्वारा वर्णित परिदृश्य को संभालेगा लेकिन यह नेट है और वीबीए नहीं है। शायद आप कोड को xla प्लगइन में डाल सकते हैं? – adrianm

+0

मेरा मानना ​​है कि "ओओ" एक कार्यपुस्तिका की संरचना, डेटा, नामित श्रेणियों, और इसी तरह के संस्करण के साथ अधिक चिंतित है। असेंबली/कोड संस्करण नहीं है; इसलिए, वीएसटीओ इस संबंध में ज्यादा मदद नहीं करता है। – AMissico

उत्तर

1

यदि यह सिर्फ वीबीए कोड है आप एक समाधान को अपग्रेड करने में सक्षम होना चाहते हैं, सभी कोड को एक एक्सएलए में अलग करना है जो एक सुलभ सर्वर पर बैठता है। तब उपयोगकर्ताओं के पास एक एडिन लोडर है जो सर्वर से नवीनतम संस्करण प्राप्त करता है, या आप कार्यपुस्तिका में लोडर को एम्बेड कर सकते हैं। वहाँ http://www.decisionmodels.com/downloads.htm

0

हालांकि मैं यह नहीं किया गया है आने के लिए की जरूरत है है। मैंने देखा है कि लोग कुछ ऐसा करते हैं जहां वे डेटाबेस में डीएलएस में कोड संग्रहीत करते हैं, और तब सत्यापित करते हैं कि स्थानीय लोग स्टार्ट अप पर समान हैं।

0

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

एक वास्तविक समस्या वे लोग हैं जो अद्यतन करने के लिए संकेत को अनदेखा करते हैं। वे ऐसा करेंगे क्योंकि वे डेटा खोने, नवीनतम संस्करण में कीड़े, और इसी तरह से डरते हैं। आपको उनकी चिंताओं को दूर करने की आवश्यकता है और इस समस्या के लिए उन्हें अपने "समाधान" में "लॉक" करने का प्रयास न करें। मैं दृढ़ता से अनुशंसा करता हूं कि आप हमेशा कार्यपुस्तिका के नवीनतम संस्करण में "आयात/उन्नयन" डेटा का साधन प्रदान करें।

लागू करने के लिए काफी सरल। यदि आप उपरोक्त उल्लिखित समस्या को प्रभावी ढंग से संबोधित करते हैं, तो लोग "प्रॉम्प्ट" पर भरोसा करना शुरू कर देंगे और आप पाएंगे कि यह वास्तव में एक सरल और प्रभावी समाधान है।

यदि आप कार्यपुस्तिका डेटाबेस से बंधे हैं, तो यह थोड़ा और जटिल हो जाता है। आम तौर पर, आप उपयोगकर्ता को डेटाबेस के बाहर डेटा को बनाए रखने की अनुमति नहीं देते हैं। जब वे डेटा को संशोधित करना चाहते हैं, तो आप उनके लिए कार्यपुस्तिका उत्पन्न करते हैं। डेटा संशोधित करने के बाद, आप डेटा आयात करते हैं। (कार्यपुस्तिका "बैकअप" प्रयोजनों के लिए सहेजी गई है या उपयोगकर्ता संदर्भ या संग्रह के लिए कार्यपुस्तिका की एक प्रति बनाए रख सकता है।) दस्तावेज़ "वर्चुअल" होने के बाद से दस्तावेज़ संस्करण को बनाए रखने की आवश्यकता को समाप्त करने का लाभ है।

0
  1. वर्तमान संस्करण संपत्ति को परिभाषित करें। इसके लिए किसी भी तरह का उपयोग करें, जैसे वीबीए में निरंतर।
  2. पर नवीनतम संस्करण तक पहुंचने का एक मानक तरीका खोजें। यह हमेशा एक ही रास्ते पर साझा ड्राइव पर हो सकता है, या आपके पास जो भी अन्य साधन है।
  3. तो वर्तमान संस्करण संख्या < नवीनतम संस्करण संख्या तो:
    • उन्नत करने के लिए
    • उन्नयन प्रक्रिया
    • संभवतः सामान्य VBA कार्यों पर कुछ लॉकिंग कर दिखाएं जब तक उन्नयन
    • किया जाता है पूछो
+0

सुरक्षा प्रतिबंधों के कारण किसी अन्य वीबीए परियोजना से वीबीए स्थिरता प्राप्त करना मुश्किल हो सकता है। – AMissico

+0

यह एक और वीबीए परियोजना नहीं है। यह एक फ़ाइल, एक यूआरएल, या बहुत कुछ हो सकता है। – Wernight

+0

यही कारण है कि मैंने संस्करण को कस्टम दस्तावेज़ प्रॉपर्टी के रूप में परिभाषित करने की अनुशंसा की। चूंकि संपत्ति "सारांश जानकारी" का हिस्सा है, इसलिए आप होस्टिंग एप्लिकेशन, COM/OLE, Windows Explorer, या संपत्ति पर जाने के लिए कई अन्य विधियों को स्वचालित रूप से उपयोग कर सकते हैं। सबसे महत्वपूर्ण बात यह है कि जब भी आवश्यक हो, तो कोई भी विंडोज एक्सप्लोरर का उपयोग कर संस्करण की जांच कर सकता है। – AMissico

0

पर एक काम उदाहरण ऐड लोडर reversioning उपलब्ध है एक आसान समाधान होगा:

  1. स्टोर एक संस्करण कार्यपुस्तिका में somwhere संख्या (उदाहरण के लिए इतना है कि यह नहीं मिलेगा एक छिपे हुए पत्रक पर गलती से हटा दिया गया) या एक चर के रूप में।
  2. अपने शेयर
  3. पर एक नवीनतम फ़ाइल संख्या के साथ एक टेक्स्ट फ़ाइल स्टोर करें एक मैक्रो शामिल करें जो स्वचालित रूप से नवीनतम संस्करण-टेक्स्टफाइल को पढ़ता है और वर्तमान में चल रहे कार्यपुस्तिका में संस्करण संख्या की तुलना करता है। यदि यह बहुत पुराना है तो बस एक संदेश-बॉक्स दिखाएं (उपयोगकर्ता को अपडेट करने के लिए कह रहा है) और कार्यपुस्तिका को बंद करें।

मैं एक समान दृष्टिकोण का उपयोग कर रहा हूं और यह ठीक काम करता है।

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