Access
 sql >> डेटाबेस >  >> RDS >> Access

एमएस-एक्सेस बेस क्लास और व्युत्पन्न वस्तुएं

परिचय।

यदि आपने माइक्रोसॉफ्ट एक्सेस क्लास मॉड्यूल पर पहले के पोस्ट नहीं देखे हैं, तो कृपया जारी रखने से पहले उन्हें देखें, लिंक नीचे दिए गए हैं।

  1. एमएस-एक्सेस क्लास मॉड्यूल और वीबीए।
  2. एमएस-एक्सेस वीबीए क्लास ऑब्जेक्ट ऐरे।

ClsArea क्लास किसी अन्य क्लास ऑब्जेक्ट में बेस क्लास के रूप में प्रदर्शन कर सकता है, बेस क्लास द्वारा की गई गणना का उपयोग नई ऑब्जेक्ट की गणना के हिस्से के रूप में किया जा सकता है। उदाहरण के लिए, यह किसी वस्तु का हिस्सा हो सकता है जो किसी चीज़ के आयतन की गणना करता है,

डीबीएल dblLength . में और dblWidth प्राप्त करें/चलो . के लिए संपत्ति प्रक्रिया नाम प्रक्रियाएं केवल एक संकेत हैं कि क्लास ऑब्जेक्ट लंबाई और चौड़ाई मानों को डबल सटीक संख्याओं में अपेक्षा करता है। इसी तरह, यदि हम संपत्ति प्रक्रिया के नाम को मात्रा और इकाई मूल्य में बदलते हैं तो दूसरे मूल्य से गुणा किया गया पहला मान हमें किसी वस्तु का कुल मूल्य देता है।

इसका सीधा सा मतलब है कि आप ClsArea क्लास को एक आधार वर्ग के रूप में उपयोग कर सकते हैं, जहाँ भी आपको पहले मान को दूसरे मान से गुणा करने के परिणाम की आवश्यकता हो, जैसे कुल मूल्य * कर की राशि की गणना करने के लिए कर की दर या कुल मूल्य * छूट की राशि को खोजने के लिए छूट की दर और इसी तरह।

भले ही हमने एक साधारण क्लास मॉड्यूल विकसित किया है, यह कई अन्य व्युत्पन्न कक्षाओं का हिस्सा हो सकता है। आपकी कल्पना और रचनात्मकता के लिए संभावनाएं खुली हैं।

हमारी ClsArea क्लास केवल लंबाई और चौड़ाई के गुणों के साथ सामग्री, कमरे, या इसी तरह की वस्तुओं के क्षेत्र की गणना करती है। यह त्रिभुज या वृत्त के क्षेत्रफल की गणना नहीं करता है। लेकिन, यह एक नई क्लास ऑब्जेक्ट का हिस्सा हो सकता है जो भंडारण क्षमता का पता लगाने के लिए कमरों, गोदामों की मात्रा की गणना करता है। उसके लिए, हमें एक और मूल्य की आवश्यकता है कमरे की ऊँचाई, गोदाम, आदि।

वॉल्यूम क्लास:ClsVolume.

आइए एक नया क्लास मॉड्यूल बनाएं ClsVolume, ClsArea को बेस क्लास के रूप में उपयोग करना। कक्षा मॉड्यूल डालें और उसका नाम बदलें ClsVolume . के लिए संपत्ति . निम्न कोड को टाइप करें या कॉपी करें और क्लास मॉड्यूल में पेस्ट करें।

विकल्प तुलना डेटाबेसऑप्शन स्पष्ट निजी p_Area के रूप में ClsAreaPrivate p_Height DoublePrivate Sub Class_Initialize() सेट करें p_Area =New ClsAreaEnd SubPrivate Sub Class_Terminate() सेट करें p_Area =कुछ भी नहीं उप-सार्वजनिक संपत्ति dblHeight प्राप्त करें (ByP_ValHeightEnd के रूप में) डबल के रूप में) वैल (Nz(dblNewValue, 0)) <=0 dblNewValue =इनपुटबॉक्स ("नकारात्मक/0 मान अमान्य:", "dblHeight ()", 0) लूप p_Height =dblNewValueEnd प्रॉपर्टी पब्लिक फ़ंक्शन वॉल्यूम () डबलइफ़ के रूप में करें ( p_Area.Area()> 0) और (p_Height> 0) फिर वॉल्यूम =p_Area.Area * p_HeightElse MsgBox "लंबाई, चौड़ाई और ऊंचाई के लिए मान्य मान दर्ज करें।", , "ClsVolume"End IfEnd Function

ClsVolume क्लास ऑब्जेक्ट का कोड अभी पूरा नहीं हुआ है। आइए लाइन-दर-लाइन कोड की जांच करें। तीसरी पंक्ति में निजी संपत्ति के रूप में घोषित p_Area ClsArea क्लास ऑब्जेक्ट का।

अगली पंक्ति p_Height . नाम से एक निजी संपत्ति घोषित करती है डेटा प्रकार डबल।

Class_Initialize() और Class_Terminate() सब-रूटीन।

अगले दो उप-दिनचर्या (प्रारंभ करें() और समाप्त करें () ) यहाँ बहुत महत्वपूर्ण हैं।

प्रारंभ करें () ClsArea ऑब्जेक्ट . को चलाता और त्वरित करता है स्मृति में जब हम ClsVolume Class . का उपयोग करते हैं और उसे तुरंत चालू करते हैं हमारे मानक मॉड्यूल कार्यक्रम में वस्तु।

जब हम कथन निष्पादित करते हैं ClsVolume =कुछ भी नहीं सेट करें मानक मॉड्यूल प्रोग्राम में, मेमोरी से ClsVolume ऑब्जेक्ट को साफ़ करने के लिए, समाप्त करें() सब-रूटीन ClsArea ऑब्जेक्ट के कब्जे वाले मेमोरी स्पेस को चलाता और रिलीज़ करता है।

संपत्ति dblHeight प्राप्त करें प्रक्रिया p_Height . से मान लौटाती है कॉलिंग प्रोग्राम के लिए संपत्ति।

संपत्ति चलो dblHeight प्रक्रिया NewValue . को दिए गए मान की पुष्टि करती है पैरामीटर और इसे निजी संपत्ति में निर्दिष्ट करता है p_Height

पब्लिक फंक्शन वॉल्यूम() p_Area.Area() . पर कॉल करके वॉल्यूम की गणना करता है आयतन की गणना करने के लिए फ़ंक्शन और लौटाए गए क्षेत्र के मान को p_Height से गुणा किया जाता है, इस व्यंजक के साथ:आयतन =p_Area.Area * p_Height। लेकिन, इस कथन को निष्पादित करने से पहले हम यह सुनिश्चित करने के लिए एक सत्यापन जांच कर रहे हैं कि p_Area.Area() फ़ंक्शन शून्य से अधिक मान लौटाता है, यह दर्शाता है कि p_Area.dblLength, p_Area.dblWidth गुणों में मान्य मान हैं और p_Height संपत्ति मान इससे अधिक है शून्य।

नोट: चूंकि, p_Area कक्षा ClsArea का उद्देश्य निजी . के रूप में परिभाषित किया गया है ClsVolume Class की संपत्ति हमें इसके गुण बनाने हैं (strDesc, dblLength, dblWidth और क्षेत्र () फ़ंक्शन) प्राप्त करें/चलो . के लिए बाहरी दुनिया के लिए दृश्यमान संचालन और क्षेत्र मूल्य वापस करने के लिए। इसका मतलब है कि हमें ClsVolume क्लास मॉड्यूल में भी strDesc, dblLength, dblWidth प्रॉपर्टीज, और ClsArea क्लास ऑब्जेक्ट के एरिया () फंक्शन के लिए गेट/लेट प्रॉपर्टी प्रोसीजर को परिभाषित करना होगा।

लेट/गेट प्रॉपर्टी प्रोसीजर।

निम्नलिखित संपत्ति जोड़ें प्राप्त करें/चलो प्रक्रियाएं और क्षेत्र () ClsVolume क्लास मॉड्यूल कोड के लिए कार्य करें:

सार्वजनिक संपत्ति strDesc () स्ट्रिंग के रूप में प्राप्त करें strDesc =p_Area.strDescEnd संपत्ति सार्वजनिक संपत्ति चलो strDesc(ByVal NewValue As String) p_Area.strDesc =NewValueEnd संपत्ति सार्वजनिक संपत्ति dblLength () डबल dblLength =के रूप में प्राप्त करें। NewValue डबल के रूप में) p_Area.dblLength =NewValueEnd प्रॉपर्टी सार्वजनिक संपत्ति dblWidth() को डबल dblWidth =p_Area.dblWidthEnd प्रॉपर्टी के रूप में प्राप्त करें, सार्वजनिक संपत्ति dblWidth (ByVal NewValue के रूप में डबल) p_Area.dblWidth =NewValueEnd संपत्ति p_A डबल एरिया के रूप में। एरिया। )अंत समारोह

strDesc() संपत्ति प्रक्रियाओं की जाँच करें कोड की पंक्तियाँ प्राप्त करें / दें। प्रक्रिया नाम का उपयोग strDesc यह केवल पसंद की बात है, यदि आप किसी भिन्न नाम का उपयोग करना चाहते हैं तो आपका स्वागत है। लेकिन, ClsArea क्लास में हमने जो मूल संपत्ति नाम इस्तेमाल किया है, वह strDesc है। यहाँ उस मूल नाम का उपयोग करने से हमें मूल ClsArea क्लास ऑब्जेक्ट के साथ संबंध की याद आती है।

अगले में dblLength() संपत्ति प्रक्रिया प्राप्त करें, = के दाईं ओर का व्यंजक साइन p_Area.dblLength ClsArea क्लास ऑब्जेक्ट में संग्रहीत dblLength मान पढ़ता है और कॉलिंग प्रोग्राम पर वापस आ जाता है।

लेट प्रॉपर्टी प्रक्रिया न्यूवैल्यू वैरिएबल में पैरामीटर मान को ClsArea क्लास ऑब्जेक्ट की p_Area.dblLength प्रॉपर्टी को असाइन करती है। यहां, हम NewValue पैरामीटर चर में प्राप्त मूल्य पर कोई सत्यापन जांच नहीं चला रहे हैं। जब हम p_Area.dblLength को मान निर्दिष्ट करते हैं, तो सत्यापन जांच ClsArea कक्षा में ही की जाएगी। संपत्ति।

इसी तरह, p_Area.dblWidth संपत्ति के लिए भी Get/Let संपत्ति प्रक्रियाएं जोड़ी जाती हैं,

इसके बाद, p_Area.Area() कॉलिंग प्रोग्राम के लिए ClsVolume क्लास ऑब्जेक्ट के माध्यम से फ़ंक्शन को दृश्यमान बनाया जाता है।

ClsVolume व्युत्पन्न क्लास मॉड्यूल कोड।

ClsVolume क्लास मॉड्यूल का पूरा कोड नीचे दिया गया है।

विकल्प डेटाबेस की तुलना करें। उप-सार्वजनिक संपत्ति को समाप्त करें dblHeight () को डबल dblHeight =p_HeightEnd संपत्ति के रूप में सार्वजनिक संपत्ति दें dblHeight (ByVal dblNewValue डबल के रूप में) करें जबकि वैल (Nz (dblNewValue, 0)) <=0 dblNewValue =इनपुटबॉक्स ("नकारात्मक / 0 मान अमान्य:", " dblHeight (), 0) लूप p_Height =dblNewValueEnd प्रॉपर्टी पब्लिक फंक्शन वॉल्यूम () DoubleIf (p_Area.Area ()> 0) और (Me.dblHeight> 0) के रूप में फिर वॉल्यूम =p_Area.Area * Me.dblHeightElse MsgBox "वैध मान दर्ज करें लंबाई, चौड़ाई और ऊंचाई के लिए।",vbExclaration , "ClsVolume"End IfEnd Function'ClsArea Class संपत्ति प्रक्रियाएं और विधि यहां सार्वजनिक संपत्ति प्राप्त करें strDesc() स्ट्रिंग के रूप में strDesc =p_Area.strDescEnd संपत्ति सार्वजनिक संपत्ति चलो strDesc(ByVal NewValue as String) p_Area.strDesc =NewValueEnd संपत्ति सार्वजनिक संपत्ति dblLength () डबल dblLength के रूप में प्राप्त करें। p_Area.dblWidthEnd प्रॉपर्टी सार्वजनिक संपत्ति चलो dblWidth(ByVal NewValue As Double) p_Area.dblWidth =NewValueEnd प्रॉपर्टी पब्लिक फंक्शन एरिया() डबल एरिया के रूप में =p_Area.Area()एंड फंक्शन

मुझे पता है, आप अब तक क्या सोच रहे हैं:जैसे "यह दोहरा काम है, यह अच्छा है अगर हम किसी तरह, ClsArea संपत्ति प्रक्रियाओं को फिर से ClsVolume कक्षा में दोहराने के इन चरणों को छोड़ दें"। या कहें, हम dblWidth संपत्ति को ClsArea में ही जोड़ सकते थे और वहां से ही क्षेत्र () और वॉल्यूम () विधियों को चला सकते थे, है ना?

यहां पूरी बात यह है कि बेस क्लास ऑब्जेक्ट किसी अन्य क्लास ऑब्जेक्ट को डिजाइन करने का हिस्सा कैसे बन सकता है।

याद रखें, पुन:प्रयोज्य वर्ग मॉड्यूल ऑब्जेक्ट को डिज़ाइन करने का संपूर्ण विचार यह है कि क्लास ऑब्जेक्ट का उपयोग करने वाले मुख्य प्रोग्राम सरल होंगे और क्लास ऑब्जेक्ट में अंतर्निहित पेचीदगियां छिपी रहती हैं।

हां, हम इसे एक से अधिक तरीकों से कर सकते हैं, एक कॉम्पैक्ट कोड के साथ भी। हम उन्हें बाद में एक्सप्लोर करेंगे, लेकिन अभी के लिए, हम अपनी मूल योजना के साथ जारी रखते हैं।

मुख्य प्रोग्राम जो ClsVolume क्लास का उपयोग करता है।

आइए हम मानक मॉड्यूल में मुख्य कार्यक्रम में अपनी नई ClsVolume कक्षा का परीक्षण करें। नमूना कोड नीचे दिया गया है।

पब्लिक सब टेस्टवॉल्यूम () डिम वॉल्यूम के रूप में ClsVolumeSet वॉल्यूम =नया ClsVolumevol.strDesc ="वेयरहाउस" वॉल्यूम। ऊंचाई", "क्षेत्र", "वॉल्यूम" वॉल्यूम डीबग के साथ। प्रिंट .strDesc, .dblLength, .dblWidth, .dblHeight, .Area(), .Volume() End WithEnd Sub

आप देख सकते हैं कि प्रिंटिंग लाइनों के बिना मुख्य कार्यक्रम कितना आसान है?

कोड को एक मानक मॉड्यूल में कॉपी और पेस्ट करें। डीबग विंडो प्रदर्शित करने के लिए Ctrl+G कुंजी दबाएं यदि यह पहले से खुली स्थिति में नहीं है। कोड के बीच में कहीं क्लिक करें और F5 . दबाएं कोड चलाने के लिए कुंजी। डीबग विंडो पर नमूना आउटपुट नीचे दिखाया गया है।

विवरण लंबाई चौड़ाई ऊंचाई क्षेत्र वॉल्यूम वेयरहाउस 25 30 10 750 7500 

विवरण लंबाई चौड़ाई ऊंचाई क्षेत्र आयतन
वेयरहाउस 25 30 10 750 7500

सत्यापन प्रदर्शन परीक्षण जांचता है।

हम यह देखने के लिए परीक्षण चलाएंगे कि बेस क्लास ClsArea क्लास की इनपुट वैल्यू सत्यापन जांच तब काम करती है जब ClsVolume क्लास के माध्यम से इसे पास किया जाता है। हमने क्षेत्र () और वॉल्यूम () कार्यों में भी कुछ सत्यापन जांच की है।

आइए एक-एक करके इन्हें आजमाएं:

सबसे पहले, हम ClsArea.dblLength प्रॉपर्टी के लिए ClsVolume क्लास के ज़रिए एक नेगेटिव वैल्यू पास करेंगे। इसे त्रुटि संदेश को ट्रिगर करना चाहिए और इनपुटबॉक्स () फ़ंक्शन को Do जबकि… लूप के भीतर सही मान इनपुट करने के लिए खोलना चाहिए।

1. मान 25 को पंक्ति में बदलें Vol.dblLength =25 , के साथ –5 और F5 . दबाएं कोड चलाने की कुंजी।

सत्यापन जांच त्रुटि को ट्रिगर करेगी और शून्य से अधिक मान की मांग करेगी। 0 से बड़ा मान दर्ज करें। उसके बाद -5 की जगह, पंक्ति में मान 25 को पुनर्स्थापित करें।

2. पंक्ति के आरंभ में टिप्पणी चिह्न (') डालकर लाइन Vol.dblHeight =10 को अक्षम करें जैसा कि दिखाया गया है:'Vol.dblHeight =10 . परिवर्तन के बाद कोड चलाने के लिए F5 कुंजी दबाएं।

चूंकि संपत्ति को कोई इनपुट मान पास नहीं किया गया है, इसलिए वॉल्यूम () फ़ंक्शन यह कहते हुए एक त्रुटि उत्पन्न करेगा कि वॉल्यूम फ़ंक्शन को चलाने के लिए सभी तीन गुण:dblLength, dblWidth, और dblHeight में मान होने चाहिए।

इसी तरह, आप Vol.Area() फ़ंक्शन के प्रदर्शन की भी जांच कर सकते हैं।

हम एक डेटा प्रिंटिंग फ़ंक्शन बना सकते हैं और फ़ंक्शन के पैरामीटर के रूप में ClsVolume ऑब्जेक्ट पास कर सकते हैं और डीबग विंडो में मानों को प्रिंट कर सकते हैं।

मुख्य कार्यक्रमों का परिवर्तित कोड।

दोनों कार्यक्रमों के लिए परिवर्तित कोड नीचे दिया गया है:

सार्वजनिक सब टेस्टवॉल्यूम () डिम वॉल्यूम जैसे ClsVolumeSet वॉल्यूम =नया ClsVolumeVol.strDesc ="वेयरहाउस" वॉल्यूम। 
सार्वजनिक उप CVolPrint(ClsVolume के रूप में वॉल्यूम) डीबग। "विवरण", "लंबाई", "चौड़ाई", "ऊंचाई", "क्षेत्र", "वॉल्यूम" को वॉल्यूम डीबग के साथ प्रिंट करें। प्रिंट करें .strDesc, .dblLength, .dblWidth , .dblHeight, .Area, .VolumeEnd WithEnd Sub

अगले हफ्ते हम कम कोड के साथ वॉल्यूम क्लास ऑब्जेक्ट बनाएंगे।

इस विषय पर सभी पृष्ठों के लिंक।

  1. एमएस-एक्सेस क्लास मॉड्यूल और वीबीए
  2. एमएस-एक्सेस वीबीए क्लास ऑब्जेक्ट एरेज़
  3. एमएस-एक्सेस बेस क्लास और व्युत्पन्न ऑब्जेक्ट
  4. VBA बेस क्लास और व्युत्पन्न ऑब्जेक्ट-2
  5. आधार वर्ग और व्युत्पन्न वस्तु प्रकार
  6. एमएस-एक्सेस रिकॉर्डसेट और क्लास मॉड्यूल
  7. एक्सेस क्लास मॉड्यूल और रैपर क्लासेस
  8. आवरण वर्ग कार्यक्षमता परिवर्तन
  9. सुश्री-पहुंच और संग्रह वस्तु मूल बातें
  10. एमएस-एक्सेस क्लास मॉड्यूल और कलेक्शन ऑब्जेक्ट
  11. संग्रह वस्तु और प्रपत्र में तालिका रिकॉर्ड
  12. डिक्शनरी ऑब्जेक्ट बेसिक्स
  13. डिक्शनरी ऑब्जेक्ट बेसिक्स-2
  14. शब्दकोश ऑब्जेक्ट की और आइटम को सॉर्ट करना
  15. डिक्शनरी से फ़ॉर्म में रिकॉर्ड प्रदर्शित करें
  16. क्लास ऑब्जेक्ट्स को डिक्शनरी आइटम के रूप में जोड़ें
  17. फॉर्म पर क्लास ऑब्जेक्ट डिक्शनरी आइटम अपडेट करें


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. माइक्रोसॉफ्ट एक्सेस टेम्प्लेट का उपयोग करने के लाभ

  2. लिस्ट व्यू कंट्रोल ड्रैग ड्रॉप इवेंट हैंडलिंग

  3. माइक्रोसॉफ्ट एक्सेस में नेविगेशन बटन से मैक्रो कैसे चलाएं

  4. Microsoft SQL सर्वर के साथ पहुँच - SSIS का उपयोग करके बड़े डेटासेट आयात करें

  5. SAP Lumira को Microsoft Access से कनेक्ट करना