Windows 10 में माइग्रेट करते समय 'सिस्टम संसाधन पार हो गया' को कैसे ठीक करें
सिस्टम संसाधन त्रुटि संदेश से आगे निकल गया
हाल ही में हम देख रहे हैं कि विंडोज 10 में माइग्रेट करते समय क्लाइंट्स को "सिस्टम रिसोर्स एक्सीडेड" हो रहा है, भले ही सिस्टम ने विंडोज के पुराने संस्करणों में ठीक काम किया हो। कुछ मामलों में हमने इस समस्या का पता उन ऐप्स में लगाया है जो एक टैब नियंत्रण में बहुत सारे सबफ़ॉर्म का उपयोग करते हैं, इसलिए मैं एक ऐसी तकनीक का वर्णन करने जा रहा हूँ जो उन मामलों में समस्या को रोकेगी जब प्रत्येक टैब एक सबफ़ॉर्म को होस्ट करता है।
टैब मेक फॉर ग्रेट UI - जब तक यादें खत्म नहीं हो जाती
अभी उस दिन मैं एक क्लाइंट के ऐप के साथ काम कर रहा था जो तीन . था टैब स्तर गहरा:टैब के भीतर टैब, जिनमें से सभी को हर बार फॉर्म खोले जाने पर सबफॉर्म के साथ लोड किया जा रहा था। ऐप ने विंडोज 7 में ठीक काम किया लेकिन विंडोज 10 में "सिस्टम रिसोर्स पार हो गया" त्रुटि संदेशों का कारण बना। समाधान केवल सबफॉर्म लोड करना है जब उपयोगकर्ता टैब पर क्लिक करता है और जब वे किसी अन्य टैब पर क्लिक करते हैं तो सबफॉर्म को अनलोड करते हैं।
Private Sub TabTasks_Change()
10 Static LastSubform As Access.SubForm
12 अगर लास्टसबफॉर्म नहीं है तो कुछ भी नहीं है
14 अगर लेन (लास्टसबफॉर्म। सोर्सऑब्जेक्ट) तो
16 LastSubform.SourceObject =vbNullString
18 End if
20 End if
22 Select केस Me.TabTasks.Value
24 केस Me.Orders.PageIndex
25 अगर Me.frmOrders.SourceObject =vbNullString तब
26 LastSubform =Me.frmOrders
28 LastSubform.SourceObject सेट करें ="frmOrder_sub"
30 समाप्त अगर
32 केस Me.Invoices.PageIndex
34 यदि Me.frmInvoices.SourceObject =vbNullString तब
36 LastSubform =Me.frmInvoices सेट करें
38 LastSubform.SourceObject ="frmInvoices_sub"
40 समाप्त अगर
42 केस Me.Payments.PageIndex
44 अगर Me.frmPayments.SourceObject =vbNullString तब
46 LastSubform =Me सेट करें .frmPayments
48 LastSubform.SourceObject ="frmPayments_sub"
50 खत्म होने पर
52 अंत चुनें
सब खत्म करें
कोड समीक्षा
जादू टैब के चेंज इवेंट पर होता है, जो तब होता है जब उपयोगकर्ता नियंत्रण के प्रत्येक टैब पर क्लिक करता है। उपरोक्त कोड नमूने में मुझे केवल उन टैब में दिलचस्पी है जिनमें सबफॉर्म हैं, इस मामले में तीन टैब। (तकनीक सबफॉर्म के बिना टैब के लिए बेकार है)।
स्थिर LastSubForm ऑब्जेक्ट, (लाइन 10), उपयोग किए गए अंतिम सबफॉर्म का ट्रैक रखता है और इसके SourceObject मान को लाइन 16 में शून्य पर सेट करता है। यह मेमोरी से पहले के टैब के फॉर्म को खाली कर देगा और जब उपयोगकर्ता स्विच ऑफ करता है तो मेमोरी का उपयोग कम से कम कर देगा। दूसरे टैब पर।
लाइन 22 में सेलेक्ट स्टेटमेंट का उपयोग यह पहचानने के लिए किया जाता है कि किस टैब पर क्लिक किया गया था, फिर लास्टसबफॉर्म ऑब्जेक्ट को टैब में निहित सबफॉर्म पर सेट करें और अंत में सबफॉर्म के सोर्सऑब्जेक्ट को लाइन 28 में सेट करें। ऐसा करने से सबफॉर्म तुरंत मेमोरी में लोड हो जाएगा। सबफॉर्म के साथ नियंत्रण के अन्य दो टैब के लिए संसाधित किया जाता है।
ध्यान रखें
मेमोरी उपयोग को कम करने के लिए आपको प्रत्येक टैब की SourceObject प्रॉपर्टी को डिज़ाइन व्यू में एक खाली स्ट्रिंग पर सेट करने की आवश्यकता है, अन्यथा सभी सबफॉर्म लोड हो जाएंगे, जो तकनीक के उद्देश्य को हरा देता है।
आपके नियंत्रण का पहला टैब लोड होना चाहिए क्योंकि यह वही है जो आपके उपयोगकर्ता आपके फ़ॉर्म को खोलने पर देखेंगे।
यदि आपको इस तकनीक का अधिक टैब के साथ उपयोग करने की आवश्यकता है, तो बस आवश्यकतानुसार अधिक चुनिंदा कथन जोड़ें, मैंने इसे 8 टैब वाले टैब नियंत्रण के लिए उपयोग किया है।
यदि आपके पास नेस्टेड टैब हैं, तो आपको प्रत्येक टैब नियंत्रण के लिए दृष्टिकोण दोहराना होगा।
यदि आपके सबफ़ॉर्म नाम आपकी SourceObject प्रॉपर्टी के समान हैं, तो आप कोड में स्ट्रिंग वेरिएबल का उपयोग करके कोड को और अधिक अनुकूलित कर सकते हैं।
अगर आपको यह पोस्ट पसंद आए तो इसे शेयर करें!
कृपया इस पोस्ट को लिंक्डइन, ट्विटर और फेसबुक पर साझा करें, इसकी बहुत सराहना की जाएगी!
8 मई को शाम 6:30 बजे सीएसटी में SQL सर्वर मीटिंग के साथ अगले एक्सेस पर मुझसे जुड़ें, अधिक जानकारी के लिए कृपया यहां क्लिक करें।