में वर्ग मॉड्यूल को संरक्षित करें मान लें कि मैं एक्सेल वीबीए में बाइक डिजाइनर प्रोग्राम बनाना चाहता हूं। मेरे पास क्लास ऑब्जेक्ट है (cBike
) जिसमें कुछ डिफ़ॉल्ट सेटिंग्स हैं। अब मैं एक फॉर्म (छवि में से एक की तरह) बनाना चाहता हूं जिसका उपयोग डेटाबेस में बाइक को संग्रहीत करने से पहले इन सेटिंग्स को बदलने के लिए किया जा सकता है। भंडारण के लिए विधि (उप), cBike
में स्थित है।फॉर्म
मैं प्रपत्र कोड में एक सार्वजनिक चर के रूप में वस्तु की रक्षा कर सकता है, इस तरह:
Public objBike As cBike
Public Sub StoreBikeToDatabase()
'database storing code goes here
End Sub
कि काम करेंगे, मैं के इस्तेमाल के खिलाफ उनका तर्क है बहुत से लोगों को देखा है सार्वजनिक (वैश्विक) चर। मुझे पूरा यकीन नहीं है कि, इस तथ्य को छोड़कर कि यदि आपके पास बहुत अधिक वैश्विक चर हैं, तो आपका कोड गड़बड़ होगा।
वैकल्पिक रूप से मैं ऑब्जेक्ट को भूल सकता हूं, और क्लास मॉड्यूल cBike
के गुणों के बजाय विभिन्न फ़ॉर्म नियंत्रणों से मूल्यों का उपयोग कर सकता हूं। हालांकि यह एक बेवकूफ समाधान की तरह लगता है।
मेरा प्रश्न यह है: उपरोक्त में से कौन सा समाधान सबसे अच्छा है, यदि कोई है? और यदि उनमें से कोई नहीं, तो मुझे इसके बजाय क्या करना चाहिए?
अद्यतन: मैं दृढ़ता से सुझाव दूंगा कि आप स्वीकार किए गए उत्तर दोनों को पढ़ लेंगे, और एक और आगे नीचे। दोनों उत्तरों के कुछ महान विचार हैं और डीई की पोस्ट में कुछ व्यापक कोड उदाहरण हैं जो दूसरों के लिए मेरे जैसे प्रश्नों के लिए उपयोग किए जा सकते हैं।
आप प्रॉपर्टी में फार्म पर तीन मानों बना सकता है एक रद्द संपत्ति, कि पढ़ने के लिए हैं/बुला कोड जो अद्यतन करने का ख्याल रखता है द्वारा लिखित के साथ ' आवश्यकतानुसार cBike' ऑब्जेक्ट। – Rory
यह इस बात पर निर्भर करता है कि आपको उस डेटा को स्टोर करने की आवश्यकता क्यों है और क्यों (डेटाबेस के विपरीत स्मृति में)। यदि आप प्रत्येक बार कक्षा का एक नया उदाहरण बनाते हैं, गुणों को संपादित करते हैं और डेटाबेस में सहेजते हैं, तो आपको फ़ॉर्म के अंदर 'cBike' का' निजी 'उदाहरण बनाना चाहिए, या फ़ॉर्म में पहले से बनाए गए' cBike' को पास करना होगा इसे दिखाने से पहले। – GSerg
विचार यह था कि मुझे फॉर्म में 'cBike' के पहले से बनाए गए उदाहरण को पास करने की आवश्यकता है, जो उस ऑब्जेक्ट को तब तक सुरक्षित रखता है जब तक इसे संग्रहीत करने की आवश्यकता न हो। 'CBike' की गुण फ़ॉर्म में इसे पारित करने के बाद फ़ॉर्म द्वारा बदला जा सकता है, लेकिन इससे पहले कि यह डेटाबेस में संग्रहीत हो। – Noceo