परिचय।
ऐसे समय होते हैं जब किसी विशेष एप्लिकेशन के लिए मूल्यों के समान सेट का उपयोग करने के लिए किसी विशेष क्लास मॉड्यूल को एक से अधिक बार इंस्टेंट करने की आवश्यकता होती है।
उदाहरण के लिए हमारे ClsArea क्लास मॉड्यूल, जिसे हमने कमरों के कार्पेट एरिया की गणना के लिए डिज़ाइन किया है, समान अनुप्रयोगों के लिए एक उम्मीदवार है। मान लें कि हम यह पता लगाना चाहते हैं कि हमें एक कमरे में कितनी फर्श की टाइलें बिछानी हैं, तो हमें फर्श के आयाम मूल्यों के अलावा, टाइल की लंबाई और चौड़ाई के मूल्यों को भी इनपुट करने में सक्षम होना चाहिए। चूंकि, फ़्लोर और टाइल दोनों में इनपुट के समान संपत्ति मान होते हैं, इसलिए हम ClsArea क्लास मॉड्यूल के दो उदाहरणों का उपयोग कर सकते हैं, एक उदाहरण FLOOR क्षेत्र के लिए और दूसरा उदाहरण TILE क्षेत्र के लिए। फ्लोर-एरिया / टाइल-एरिया किसी विशेष कमरे के लिए टाइलों की कुल संख्या देता है।
एक ही कक्षा मॉड्यूल के दो उदाहरण।
हम मानक मॉड्यूल प्रोग्राम में ClsArea क्लास मॉड्यूल के दो अलग-अलग उदाहरण बनाकर ऐसा कर सकते हैं यदि केवल एक कमरा है।
सार्वजनिक उप तल टाइलें () ClsAreaDim टाइलों के रूप में मंद मंजिल ClsAreaDim flrArea डबल के रूप में, टाइल क्षेत्र डबलDim lngTiles के रूप में LongSet FLOOR =नई ClsAreaSet टाइलें =नया ClsAreaFLOOR.strDesc ="बेड रूम 1"FLOOR। FLOOR.Area()TILES.strDesc ="ऑफ-व्हाइट" TILES.dblLength =2.5TILES.dblWidth =1.25tilearea =TILES.Area()lngTiles =flrArea /tileareaDebug. Print FLOOR.strDesc &"आवश्यक टाइलें:" और lngTiles &"नंबर - रंग:" और TILES.strDescSet FLOOR =नथिंगसेट टाइलें =नथिंगएंड सब
वस्तुओं की एक सरणी को संभालना।
लेकिन, क्या होगा यदि हमें विभिन्न आकारों या टाइलों के रंगों वाले कई कमरों की एक सरणी के लिए उपरोक्त विधि को लागू करने की आवश्यकता है? इसका उत्तर एक ही ClsArea . के दो उदाहरणों के साथ एक नया क्लास मॉड्यूल बनाना है कक्षा, फर्श, . के लिए एक उदाहरण और दूसरा टाइल्स . के लिए गुण। दोनों उदाहरण एक नए क्लास मॉड्यूल में लिपटे हुए हैं।
चलो ऐसा करते हैं।
- अपना डेटाबेस खोलें और कोड संपादन विंडो (ALT+F11) प्रदर्शित करें।
- कक्षा मॉड्यूल का चयन करें सम्मिलित करें . से मेनू।
- नाम बदलें ClsTiles . के लिए संपत्ति का मूल्य ।
- निम्न VBA कोड को CLsTiles क्लास मॉड्यूल में कॉपी और पेस्ट करें और कोड को सेव करें:
विकल्प डेटाबेस की तुलना करेंऑप्शन स्पष्ट निजी pFLOOR ClsAreaPrivate pTILES के रूप में ClsAreaPrivate Sub Class_Initialize() सेट pFLOOR =नया ClsArea सेट pTILErea =नया Cls SubPrivate Sub Class_Terminate() सेट pFLOOR =कुछ भी सेट pTILES =कुछ भी नहीं सबपब्लिक प्रॉपर्टी फ़्लोर प्राप्त करें () जैसा कि ClsArea सेट फ़्लोर =pFLOOREnd प्रॉपर्टीपब्लिक प्रॉपर्टी सेट फ़्लोर (ByRef NewValue As ClsArea) सेट pFLOOR =NewValueEnd प्रॉपर्टीपब्लिक प्रॉपर्टी टाइलें सेट करें () Cls के रूप में सेट करें pTILESEnd संपत्ति सार्वजनिक संपत्ति सेट टाइलें(ByRef NewValue As ClsArea) सेट pTILES =NewValueEnd संपत्तिपब्लिक फ़ंक्शन NoOfTiles() लंबे NoOfTiles =pFLOOR.Area() / pTILES.Area()एंड फंक्शन
के रूप मेंदोनों उदाहरण, pFLOOR, और pTILES को ClsTiles क्लास ऑब्जेक्ट की निजी प्रॉपर्टी के रूप में घोषित किया गया है।
Class_Initialize() जब ClsTiles क्लास मॉड्यूल को यूजर प्रोग्राम में इंस्टेंट किया जाता है।
Class_Terminate() जब उपयोगकर्ता प्रोग्राम में ClsTiles क्लास मॉड्यूल इंस्टेंस कुछ भी नहीं पर सेट होता है, तो सबरूटीन मेमोरी से दोनों इंस्टेंस (pFLOOR और pTILES) को हटा देता है।
प्राप्त करें और सेट करें संपत्ति प्रक्रियाएं ClsTiles क्लास ऑब्जेक्ट में क्रमशः pFLOOR इंस्टेंस से मूल्यों की पुनर्प्राप्ति और असाइनमेंट की अनुमति देती हैं।
अगली संपत्ति प्राप्त करें और सेट करें प्रक्रिया ClsArea वर्ग के pTILES उदाहरण में समान संचालन की अनुमति देती है।
हमने एक नया फ़ंक्शन जोड़ा है NoOfTiles() नए क्लास मॉड्यूल में, फ़्लोर-एरिया और टाइल आयाम के आधार पर टाइलों की संख्या की गणना करने के लिए।
आइए हम एक प्रोग्राम लिखें और एक नए क्लास मॉड्यूल:ClsTiles में एक ही क्लास ऑब्जेक्ट के कई इंस्टेंस के उपयोग के बारे में जानें।
- निम्न VBA कोड को एक मानक मॉड्यूल में कॉपी और पेस्ट करें:
सार्वजनिक उप टाइल कैल्क (क्ल्सटाइल्स के रूप में मंद FTilesDim TotalTiles के रूप में LongSet FTiles =नई ClsTilesFTiles.Floor.strDesc ="वेयरहाउस"FTiles.Floor। dblLength =100FTiles.Floor.dblWidth =50FTiles.Tiles.dblLength =2.5FTiles.Tiles.dblWidth =1.75TotalTiles =FTiles.NoOfTiles() Debug. Print "साइट का नाम", "फ्लोर एरिया", "टाइल एरिया", "No. टाइल्स की"डीबग.प्रिंट एफटीाइल्स.फ्लोर.स्ट्रडिस्क, एफटाइल्स.फ्लोर.एरिया, एफटाइल्स.टाइल्स.एरिया, टोटलटाइल्सएंड सब
- परीक्षण डेटा प्रिंट करने के लिए डीबग विंडो को खुला रखें (CTRL+G)।
- VBA कोड के बीच में कहीं क्लिक करें और F5 Press दबाएं कोड चलाने के लिए कुंजी। परिणाम डीबग विंडो पर मुद्रित होता है।
यदि आप एक ऊंची इमारत के कई कमरों या कई मंजिलों के कमरों की टाइल आवश्यकताओं की गणना करना चाहते हैं तो आपको उपरोक्त कार्यक्रम को कई बार चलाना चाहिए और मूल्यों को नोट करना चाहिए, जो व्यावहारिक रूप से बहुत कठिन है।
कई कमरों के लिए टाइल की आवश्यकता ढूँढना।
अब, ClsTiles की एक सरणी के साथ, कई कमरों की टाइल आवश्यकताओं को खोजने के लिए एक और प्रोग्राम लिखें। संपत्ति मूल्यों को सीधे कीबोर्ड से इनपुट करके ऑब्जेक्ट।
- निम्न VBA कोड को एक मानक मॉड्यूल में कॉपी और पेस्ट करें। 3 सेट tmpFT =नई ClsTiles 'तल आयाम tmpFT के साथ। तल .strDesc =इनपुटबॉक्स (Str (j) और ") तल विवरण", 0) .dblLength =इनपुटबॉक्स (Str (j) और ") तल की लंबाई", , 0) .dblWidth =InputBox(Str(j) &") तल की चौड़ाई", 0) 'tmpFT.Tiles के साथ टाइल आयाम के साथ समाप्त। dblLength =InputBox(Str(j) &") टाइल की लंबाई", 0) .dblWidth =InputBox(Str(j) &") टाइल की चौड़ाई", 0) ReDim के साथ समाप्त FTiles (1 से j) को ClsTiles सेट के रूप में संरक्षित करें FTiles (j) =tmpFT सेट tmpFT =कुछ भी नहीं 'प्रिंटआउट लें =LBound (FTiles) H =UBound (FTiles) डीबग। प्रिंट "FLOOR", "फ्लोर एरिया", "टाइल्स", "टाइल एरिया", "टोटल टाइल्स" के लिए जे =एल टू एच एफटाइल्स (जे) डिबग के साथ। प्रिंट fTiles एंड विथ नेक्स्ट 'मेमोरी से सभी ऑब्जेक्ट हटा दें j =L से H के लिए सेट FTiles (j) =कुछ भी नहीं अगला अंत उप
- डिबग विंडो को वहां आउटपुट प्रिंट करने के लिए खुला रखें।
- पहले की तरह कोड चलाएँ और तीन कमरों के तल और टाइल आयामों के लिए इनपुट मान।
जैसा कि आप उपरोक्त कोड से देख सकते हैं कि कमरे और टाइल आयामों के दोनों मान एक ही क्लास ऑब्जेक्ट ऐरे इंस्टेंस में साथ-साथ जाते हैं।
उपरोक्त कार्यक्रम एक डेमो है जो फॉर के भीतर मूल्यों के केवल तीन सेटों के लिए चलता है। . . अगला लूप। इसे एक सशर्त लूप के साथ संशोधित किया जा सकता है जो एक सशर्त ब्रेक कोड प्रोग्राम को समाप्त करने तक आवश्यक संख्या में चलता है।
भविष्य के संदर्भ के लिए तालिका में डेटा मूल्यों और गणना परिणामों के प्रत्येक सेट को सहेजने के लिए कार्यक्रम को संशोधित किया जा सकता है।
एक आवरण वर्ग एक कंटेनर है अन्य वर्गों, डेटा संरचनाओं, या अन्य वस्तुओं के उदाहरण संग्रह के उदाहरणों के लिए कक्षा। यहां हमने इसका इस्तेमाल एक ही क्लास ऑब्जेक्ट के दो इंस्टेंस रखने के लिए किया है।
इस विषय पर सभी लिंक की सूची।
- एमएस-एक्सेस क्लास मॉड्यूल और वीबीए
- एमएस-एक्सेस वीबीए क्लास ऑब्जेक्ट एरेज़
- एमएस-एक्सेस बेस क्लास और व्युत्पन्न ऑब्जेक्ट
- VBA बेस क्लास और व्युत्पन्न ऑब्जेक्ट-2
- आधार वर्ग और व्युत्पन्न वस्तु प्रकार
- एमएस-एक्सेस रिकॉर्डसेट और क्लास मॉड्यूल
- एक्सेस क्लास मॉड्यूल और रैपर क्लासेस
- आवरण वर्ग कार्यक्षमता परिवर्तन
- सुश्री-पहुंच और संग्रह वस्तु मूल बातें
- एमएस-एक्सेस क्लास मॉड्यूल और कलेक्शन ऑब्जेक्ट
- संग्रह वस्तु और प्रपत्र में तालिका रिकॉर्ड
- डिक्शनरी ऑब्जेक्ट बेसिक्स
- डिक्शनरी ऑब्जेक्ट बेसिक्स-2
- शब्दकोश ऑब्जेक्ट की और आइटम को सॉर्ट करना
- डिक्शनरी से फ़ॉर्म में रिकॉर्ड प्रदर्शित करें
- क्लास ऑब्जेक्ट्स को डिक्शनरी आइटम के रूप में जोड़ें
- क्लास ऑब्जेक्ट्स को डिक्शनरी आइटम के रूप में जोड़ें
- फॉर्म पर क्लास ऑब्जेक्ट डिक्शनरी आइटम अपडेट करें