क्या आपके पास कभी एक्सेस त्रुटि संख्या है, लेकिन त्रुटि संदेश नहीं है जो बताता है कि यह क्या है?
AccessError()
फ़ंक्शन एक्सेस त्रुटि संख्या से संबद्ध त्रुटि संदेश प्राप्त करने का एक त्वरित तरीका है:
पाइप प्लेसहोल्डर कैरेक्टर
पाइप कैरेक्टर (|
) एक लंबवत बार है (अंग्रेजी कीबोर्ड पर [Shift] + [\] {बैकस्लैश} के माध्यम से उपलब्ध है)।
AccessError फ़ंक्शन इस वर्ण का उपयोग उदाहरण-विशिष्ट पाठ के लिए प्लेसहोल्डर . के रूप में करता है एक त्रुटि संदेश में।
उदाहरण के लिए, एक्सेस एरर 3211 है "...टेबल लॉक नहीं हो सका '|' ..." सामान्य संदेश में पाइप वर्ण को वास्तविक स्ट्रिंग से बदल दिया जाता है जिसका उपयोग कोड की पंक्ति में किया गया था जिसने त्रुटि संदेश उठाया था:
आधिकारिक दस्तावेज़ीकरण
AccessError फ़ंक्शन वास्तव में Access.Application ऑब्जेक्ट की एक विधि है। आधिकारिक दस्तावेज़ीकरण से यह क्या करता है इसका विवरण यहां दिया गया है:
आप पहुंच त्रुटि का उपयोग कर सकते हैं माइक्रोसॉफ्ट एक्सेस या डेटा एक्सेस ऑब्जेक्ट्स (डीएओ) त्रुटि से जुड़े वर्णनात्मक स्ट्रिंग को वापस करने की विधि।
यह ध्यान देने योग्य है कि यह एक Microsoft है पहुंच-विशिष्ट समारोह। दूसरे शब्दों में, आप इसे एक्सेल या वर्ड जैसे किसी अन्य ऑफिस एप्लिकेशन से कॉल नहीं कर पाएंगे।*
(* यह तकनीकी रूप से सत्य नहीं है। आप किसी भी वीबीए वातावरण में COM के माध्यम से एक एक्सेस एप्लिकेशन ऑब्जेक्ट बना सकते हैं और फिर उस ऑब्जेक्ट से एक्सेसएरर विधि को कॉल करने में सक्षम हो सकते हैं। बेशक, यह केवल तभी उपयोगी होगा जब आप जांचना चाहते हैं उस अन्य Office अनुप्रयोग में पहुँच-विशिष्ट त्रुटि संदेश स्ट्रिंग, जो असंभाव्य प्रतीत होता है।)
यूज केस
ईमानदारी से कहूं तो मुझे अपने एप्लिकेशन कोड के अंदर इस पद्धति का उपयोग करना याद नहीं है।
यह एक ऐसी सुविधा है जिसका उपयोग मैं लगभग विशेष रूप से तत्काल विंडो से करता हूं जब मैं यह निर्धारित करने का एक त्वरित तरीका चाहता हूं कि एक एक्सेस त्रुटि संख्या क्या दर्शाती है।
यह सबसे उपयोगी होगा यदि आप एक त्रुटि हैंडलर के सामने आए जिसमें Select Case Err.Number
था ब्लॉक और सभी व्यक्तिगत Case
बयानों में बिना किसी टिप्पणी के संख्याओं का इस्तेमाल किया गया है, जैसे:
Select Case Err.Number
Case 2452
'Do something
Case 2455
'Do a different thing
Case 2467
'Do something else
End Select
AccessError पद्धति से लैस, आप प्रत्येक त्रुटि संख्या के संक्षिप्त विवरण के साथ एक टिप्पणी जोड़कर इस कोड को बेहतर बना सकते हैं:
Select Case Err.Number
Case 2452 'invalid reference to the Parent property
'Do something
Case 2455 'invalid reference to the property
'Do a different thing
Case 2467 'expr refers to object that is closed or doesn't exist
'Do something else
End Select
बग डेटाबेस एकीकरण विचार
यदि आप एक बग डेटाबेस का उपयोग कर रहे हैं - जैसे फोगबगज़ - जो उनके विवरण के आधार पर समूह त्रुटियों को एक सुविधा प्रदान करता है, तो आप जेनेरिक का उपयोग करना चाह सकते हैं। बग रिपोर्ट के विषय में त्रुटि संदेश (या जो भी क्षेत्र समूहीकरण करता है) और विशिष्ट को कैप्चर करें बग इवेंट विवरण फ़ील्ड में त्रुटि संदेश।
मैं अपने कस्टम एरर थ्रोइंग फंक्शन के संदर्भ में इस मुद्दे पर यहां चर्चा करता हूं:VBA में थ्रोइंग एरर्स:बग डेटाबेस इंटीग्रेशन इश्यूज।