में फ़ॉर्म के बीच पैरामीटर पास करना मैंने लॉगिन नाम का एक लॉगिन फॉर्म बनाया है जहां उपयोगकर्ता नाम txtEmployee टेक्स्टबॉक्स में टाइप किया गया है, और मुझे इसे एमएस एक्सेस में दूसरे फॉर्म में दूसरे पृष्ठ में प्रदर्शित करने की आवश्यकता है।एमएस एक्सेस
उत्तर
DoCmd.OpenForm
आपको अंतिम पैरामीटर के रूप में मनमाने ढंग से मूल्य पारित करने की अनुमति देता है। यह मान Me.OpenArgs
के रूप में नए रूप में पहुँचा जा सकता है:
' Invoked by some Button on the first form '
Sub GoToSecondPage()
DoCmd.OpenForm "MySecondPage", acNormal, , , , , txtEmployee.Value
End Sub
' Second form '
Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
lblShowEmployeeName.Value = Me.OpenArgs
End If
End Sub
(। कोड उदाहरण अपरीक्षित)
व्यक्तिगत तौर पर मैं उन्हें खुले तर्क के माध्यम से पारित होगा जब प्रपत्र खोलने। प्रपत्र एक से उदाहरण के लिए अपने
DoCmd.OpenForm "frmB", , , , , acDialog,”Badger”
लिखते थे और फिर प्रपत्र बी करें OnOpen स्थिति में आप पर कब्जा कर सकते हैं क्या आप इस
Me.txtSomething=Me.OpenArgs
की तरह भेजा है तो आप केवल एक बात मैं करता हूँ लेकिन क्या पारित कर सकते हैं खुले तर्कों में एक पाइप सीमित स्ट्रिंग पास है और फिर इसे विभाजित करें।
आप ACDialog के साथ क्यों खुल रहे हैं? – Fionnuala
वैसे यह उदाहरण पॉपअप फॉर्म की तरह लिया गया था, इसलिए मैं इसे मोडल करना चाहता था, अगर ओपी सिर्फ सामान्य फॉर्म –
एक जोड़े विचारों ...
, एक वैश्विक चर के नाम लिखने के लिए तो OnLoad इवेंट के साथ दूसरे पृष्ठ पर क्षेत्र को पॉप्युलेट लॉगिन उपयोगकर्ता नाम मैदान पर AfterUpdate घटना का प्रयोग करें।
या, आप सीधे = करने के लिए क्षेत्र का डिफ़ॉल्ट मान सेट कर सकते हैं यदि आप हर समय खुला रूप में लॉग छोड़ने पर योजना [फार्म]! [LogInForm]! [उपयोगकर्ता नाम]
क्यों एक नहीं बना सार्वजनिक फ़ंक्शन जो & स्टोर करता है/या आपके द्वारा पहले फॉर्म के बाद स्टोर किए जाने वाले वैश्विक चर को पुनर्प्राप्त करता है? यह आपको न केवल एक या एक से अधिक रूपों पर इसका उपयोग करने की अनुमति देगा, बल्कि एक क्वेरी के मानदंड के रूप में भी (उदाहरण के लिए, रिकॉर्ड को वापस करने के लिए जो आपके द्वारा संग्रहीत उपयोगकर्ता नाम से मेल खाता है)।
मैं मानता हूं कि यह "नकली" सुरक्षा है, लेकिन कई बार आपकी आवश्यकताओं के लिए पर्याप्त है। मैंने इसे पहले कार्यान्वित किया है, जहां मैं उपयोगकर्ता स्ट्रिंग उपयोगकर्ता नाम से उपयोगकर्ता तालिका में प्रविष्टि से मेल खाता हूं।
बीटीडब्ल्यू, मैं इस सुविधा को निजीकरण के रूप में संदर्भित करता हूं, सुरक्षा नहीं।
बस एक विचार।
DoCmd.OpenForm FormName:="miscForm", OpenArgs:=paramstring
यहाँ एक पाइप-सीमांकित स्ट्रिंग DoCmd.OpenForm को पैरामीटर के रूप में पारित कर दिया प्रसंस्करण के लिए एक नियमित है::
चाहता है तो मैं इसे हटा सकता हूं। मैं इसके लिए कभी भी वैश्विक का उपयोग नहीं करूंगा। इसके बजाय, मैं उस फ़ंक्शन के अंदर एक स्टेटिक वैरिएबल का उपयोग करता हूं जो मान देता है, और यदि यह सेट नहीं है, तो यह जानकारी एकत्र करने के लिए फॉर्म खोल देगा। इसका मतलब यह होगा कि यह कोड में कहीं और बदलने से स्व-उपचार और सुरक्षित दोनों है। –
आप OpenArgs पैरामीटर के रूप में एक सीमांकित स्ट्रिंग पारित कर सकते हैं
Dim Pstring As Variant
If Len(Me.OpenArgs) > 0 Then
Pstring = Split(Me.OpenArgs, "|")
var1 = Pstring(0)
<etc..>
End If
मुझे आमतौर पर डिज़ाइन समस्या के संकेत के रूप में ऐसा करने की आवश्यकता दिखाई देती है। यही है, अगर आपको फॉर्म में उस जानकारी को पास करना है, तो मूल रूप से ऐसा करने के कुछ प्रकार के संरचित तरीके का उपयोग करना चाहिए। –
@ डेविड, क्या आप 'स्ट्रक्चर' टाइप वैरिएबल का जिक्र कर रहे हैं? मैं केवल अपने वर्तमान एक्सेस ऐप में एक फॉर्म के लिए इसका उपयोग करता हूं, ताकि फॉर्म बनाने से पहले मुझे डेटाबेस में सामान डालना पड़े, और फिर जब मैं फॉर्म में हूं। मैं एक बेहतर विचार के लिए खुला हूं, मैं कोई एक्सेस फॉर्म विशेषज्ञ नहीं हूं। –
इसे पूरा करने के कई तरीके हैं। एक को केवल कॉलिंग संदर्भ से डेटा को कॉल किए गए फॉर्म में पोक करना है। यह एसीएचआईडी और एसीडियलोग दोनों के साथ फॉर्म खोलकर किया जा सकता है, और जब आप डेटा को कॉल किए गए फॉर्म में प्राप्त कर लेते हैं, तो आप इसे दृश्यमान बनाते हैं, जो इसे कॉलिंग संदर्भ स्टॉप में मोडल और कोड निष्पादन बनाता है। मैं आमतौर पर ऐसा नहीं करता हूं। मुझे कक्षा मॉड्यूल का उपयोग करने की अधिक संभावना है, लेकिन यह केवल लाभदायक है जब आपके पास पास करने के लिए कई विशेषताओं को प्राप्त किया गया है, जैसे कि कई मानदंडों पर फ़िल्टरिंग करते समय। –
- 1. एमएस एक्सेस
- 2. एमएस एक्सेस
- 3. एमएस एक्सेस
- 4. एमएस एक्सेस
- 5. एमएस एक्सेस
- 6. एमएस-एक्सेस:
- 7. एमएस एक्सेस
- 8. एमएस एक्सेस
- 9. एमएस एक्सेस
- 10. एमएस एक्सेस
- 11. एमएस-एक्सेस
- 12. एमएस एक्सेस
- 13. अपवाद जब एमएस एक्सेस
- 14. मैं एमएस एक्सेस
- 15. निबर्ननेट और एमएस एक्सेस
- 16. एमएस एक्सेस गुण
- 17. एमएस-एक्सेस क्वेरी
- 18. एक एमएस एक्सेस फॉर्म
- 19. एमएस एक्सेस डेटाबेस
- 20. एमएस एक्सेस: इस आपरेशन
- 21. एमएस एक्सेस डेटाबेस
- 22. कैसे एमएस एक्सेस तालिका
- 23. एमएस एक्सेस डेटाबेस
- 24. एक्सेस एसक्यूएल एमएस एक्सेस का उपयोग कर
- 25. एमएस-एक्सेस डेटाबेस लॉक एक्सेस डीबी
- 26. टीएसक्यूएल को एमएस-एक्सेस एसक्यूएल
- 27. एमएस एक्सेस 2000 से 2010
- 28. वीबीए के बिना एमएस एक्सेस?
- 29. एमएस एक्सेस एसक्यूएल, डेटा प्रकार
- 30. रूबी और एडीडीबी (एमएस एक्सेस)
उपयोगकर्ता है विंडोज लॉगिन उपयोगकर्ता नाम के समान नाम? यदि ऐसा है, तो आप इसका नाम प्राप्त कर सकते हैं: http://www.mvps.org/access/api/api0008.htm – Fionnuala
इसके अलावा, आपको उपयोगकर्ता नाम प्रदर्शित करने की आवश्यकता क्यों है, निश्चित रूप से उपयोगकर्ता जानता है कि वे कौन हैं? अगर आपको किसी अन्य कारण के लिए नाम की आवश्यकता है, तो आपको ऐसा कहना चाहिए, क्योंकि जानकारी पास करने के एक से अधिक तरीके हैं। उदाहरण के लिए, यदि नाम रिकॉर्ड करने के लिए नाम का उपयोग किया जाता है, तो ओपनफॉर्म विधि का तर्क शायद सबसे अच्छा है। – Fionnuala
ऐसा लगता है जैसे आपने नकली सुरक्षा के साथ एक प्रणाली बनाई है। जेट यूएलएस या विंडोज एनटीएफएस सुरक्षा या सक्रिय निर्देशिका का उपयोग करने के बजाय, आपने ऐसा क्यों किया? –