मैं कोई एक्सेस विशेषज्ञ नहीं हूं, और मेरे पास एक (मुझे उम्मीद है!) सरल सवाल है ...माइक्रोसॉफ्ट एक्सेस में अभिव्यक्ति में वर्तमान फॉर्म का संदर्भ कैसे लगा सकता हूं?
मेरे पास कई रिकॉर्ड हैं। कुछ टेक्स्टबॉक्स में मैं केवल अंतर्निहित तालिका से मान प्रस्तुत करता हूं - इसलिए वे संबंधित फ़ील्ड से बंधे होते हैं।
लेकिन कुछ टेक्स्टबॉक्स में गणना मूल्य होना चाहिए। कुछ गणना जटिल हैं और तालिका से कई फ़ील्ड शामिल हैं। मैं गणना को वीबीए फ़ंक्शन के रूप में लिखता हूं। मैं के रूप में "नियंत्रण स्रोत" कुछ इस तरह प्रवेश कर सकता है:
=MyFunction([Field1], [Field2], [Field3] ...)
लेकिन मैं समारोह कॉल में क्षेत्रों के दर्जनों को सूचीबद्ध नहीं करना चाहते हैं। इसके बजाय, मैं पैरामीटर के रूप में पूरा फॉर्म (या वर्तमान रिकॉर्ड) भेजना चाहता हूं, और फ़ंक्शन को आवश्यक फ़ील्ड को संदर्भित करने दें। मैं इसे इस तरह कर सकता हूं:
=MyFunction([Forms]![MyForm])
लेकिन मुझे कॉल में फॉर्म का नाम नहीं देना पसंद है। फ़ंक्शन तर्क के रूप में "वर्तमान फ़ॉर्म" भेजने का कोई तरीका नहीं है? वीबीए में, आप "मी! [फ़ील्ड 1]" exampel के लिए बस "मुझे" कीवर्ड का उपयोग करें। लेकिन ऐसा लगता है कि "मी" अभिव्यक्ति में स्वीकार नहीं किया गया है।
क्या अभिव्यक्ति में वर्तमान फ़ॉर्म को संदर्भित करने का कोई और तरीका है?
(यह एक कॉस्मेटिक सवाल है, मुझे पता है। लेकिन यह "[फॉर्म]! [माईफॉर्म]" का उपयोग करने के लिए अच्छा प्रोग्रामिंग नहीं है। बाद में आप नियंत्रण को किसी अन्य रूप में कॉपी करते हैं और अभिव्यक्ति में नाम बदलना भूल जाते हैं .. ।)
आपकी मदद के लिए आभारी! :-)
/ऐन्डर्स
'Screen.ActiveForm.Name' एक वैश्विक समारोह में इस्तेमाल किया जा सकता है! उसके लिए धन्यवाद! – bgmCoder
मुझे लगता है कि इसे उत्तर के रूप में चिह्नित किया जाना चाहिए क्योंकि यह फॉर्म नाम को पैरामीटर के रूप में पास करने से कहीं अधिक परिस्थितियों में लक्ष्य को पूरा करने के लिए काम करेगा और पैरामीटर को पार करने की आवश्यकता को खत्म कर देगा - यहां तक कि तटस्थ, कम भ्रमित कोड भी। फिलिप ग्रॉन्डर के लिए कुडोस! इसने एक समस्या हल की जिसे मैं बहुत अच्छी तरह से संबोधित कर रहा था। – DRC