सबसे अच्छा तरीका मदद कर सकता है नहीं कर रहा है चर का एक गुच्छा पारित करने का प्रयास करने के लिए । यह बहुत अधिक कोड है, और लचीला है। उदाहरण के लिए, यदि आपको दो मानों को पारित करने की आवश्यकता है, तो उन वर्षों में क्या होता है जब यह आवश्यकता 5 मानों तक बढ़ जाती है? मूल्यों की पूरी रकम को बनाए रखने और पास करने की कोशिश करना बहुत अधिक कोडिंग कार्य है।
ध्यान रखें कि एमएस-उपयोग में प्रत्येक प्रपत्र वास्तव में एक वर्ग के उद्देश्य यह है कि आप कोड में हेरफेर कर सकते हैं में रखें। तो, यहाँ एक वस्तु दृष्टिकोण का उपयोग करें और आप आप केवल कम कोड नहीं लिख पाते हैं, लेकिन अपने कोड, और अधिक स्वच्छ अधिक मॉड्यूलर हो जाएगा, वैश्विक वार्स की कोई आवश्यकता नहीं है, और कोड आप लिखते हैं अक्सर विभिन्न रूपों के बीच फिर से इस्तेमाल किया जा सकता।
सामान्य तौर पर जब एक रूप एक और रूप 2nd रूप में ऑन-खुला घटना रूपों में आप कर सकते हैं की शुरूआत (वास्तव में, तुम भी ऑन लोड घटना के रूप में के रूप में देर से उपयोग कर सकते हैं):
यहाँ है कैसे पिछला फॉर्म ऑब्जेक्ट का संदर्भ लें। दूसरे शब्दों में, आप यहां एक ऑब्जेक्ट दृष्टिकोण का उपयोग कर सकते हैं।
रूपों मॉड्यूल स्तर पर, फार्म के लिए मैं के रूप में एक रूप वस्तु की घोषणा:
Option Compare Database
Option Explicit
dim frmPrevious as form
फिर, रूपों में ऑन लोड घटना, हम चले:
Set frmPrevious = Screen.ActiveForm
अब, किसी भी कोड हमारे प्रपत्र आज़ादी कोड, घटनाओं का उपयोग कर सकते में, यहां तक कि कोड में है कि पिछले रूप से सार्वजनिक रूप में घोषित किया varibles।
तो, यदि आप पिछले फॉर्म की डिस्क लिखना चाहते हैं, और डेटा का पुनः लोड करना चाहते हैं।
frmPrevious.Refresh
आप ID मान सेट करना चाहते हैं, तो यहां जाएं:
frmPrevious!ID = some value
और, ध्यान दें कि आप भी रूप है कि फार्म के लिए एक सार्वजनिक चर के रूप में पिछले घोषणा कर सकते हैं, और इस तरह अगर आप दो रूपों गहराई में, आप जा सकते हैं:
frmPrevious.frmPrevious!ID = some value
तो, बस की घोषणा एक रूपों प्रत्येक रूपों कोड मॉड्यूल में वस्तु (या लोगों जहां कोड में मूल्यों का उपयोग करने की आवश्यकता है कृपया कम से कम)। उपरोक्त का अर्थ है कि किसी भी कोड के पिछले फॉर्म ऑब्जेक्ट के लिए एक तैयार संदर्भ है। कुछ और सेटअप उत्पन्न करने के लिए पिछले प्रपत्र मजबूर करने के लिए विकल्प की तरह
frmPrevious.MyCustomRefresh
या यहां तक कि चीजें एक चालान नंबर:: कार्य घोषित एक रूप में जघन के रूप में रूप की एक विधि बन जाएगा, और की तरह चलाया जा सकता है
frmPrevous.SetInvoice
या frmPrevious.SetProjectStatusOn
तो आप न केवल मूल्यों और डेटा आगे पीछे शफ़ल सकते हैं, लेकिन आप आसानी से सुविधाओं और कार्यों कि तुम prevous फार्म के लिए कोड में निर्माण पर अमल कर सकते हैं।
वास्तव में एक कोडिंग मानक के रूप में, मेरे अधिकांश रूपों में माइक्रिफ्रेश नामक एक जघन्य कार्य होता है।
ध्यान दें कि इस दृष्टिकोण की सुंदरता यह है कि आप इस प्रकार के पिछले फॉर्म से + उपयोग + सेट मान पढ़ सकते हैं। यह आपके कोड को न केवल मान प्राप्त करने की अनुमति देता है, बल्कि उस पिछले रूप में मान भी सेट करता है। तो यह दृष्टिकोण द्वि-दिशात्मक है। आप फ़ॉर्म के बीच डेटा और मूल्यों को आगे और पीछे घुमा सकते हैं। यहां दूसरा लाभ यह है कि आप केवल चर के लिए ही सीमित नहीं हैं, लेकिन फ़ील्ड का उपयोग कर सकते हैं, मूल्यों (घटनाओं, गुणों) आदि को नियंत्रित कर सकते हैं
इस दृष्टिकोण का अर्थ है कि पिछले का अधिकांश रूप अब आपकी उंगलियों पर है।
तो चर के पूरे झटके को पारित करने की कोशिश न करें। फॉर्म के संदर्भ को पास करें और आपके पास अपनी उंगलियों पर एक अच्छी तैयार वस्तु है और यह इस प्रकार की कोडिंग समस्या को हवा बनाता है।
यह कुछ समय हो गया है क्योंकि मैंने एक्सेस के साथ काम किया है, लेकिन क्या आप दूसरे फॉर्म को कॉल कर सकते हैं, मॉड्यूल-स्तर/फॉर्म-स्तरीय चर सेट कर सकते हैं, फिर दूसरा फॉर्म बंद कर सकते हैं? –