Access
 sql >> डेटाबेस >  >> RDS >> Access

ट्री व्यू कंट्रोल के साथ एक्सेस मेनू बनाना

ट्री व्यू कंट्रोल के साथ समाप्त होने पर माइक्रोसॉफ्ट एक्सेस प्रोजेक्ट मेनू, नीचे दी गई छवि की तरह दिखेगा।

ऊपर दी गई छवि रिपोर्ट समूह का तीसरा विकल्प कस्टम रिपोर्ट दिखाती है उपयोगकर्ता के इनपुट के लिए, मेनू स्क्रीन को ओवरलैप करते हुए, रिपोर्ट फ़िल्टर पैरामीटर फॉर्म खुला होने के साथ, चयनित और हाइलाइट किया गया है।

उस पर जाने से पहले, पिछले सप्ताह के पाठ में, हमने सीखा कि कैसे संबंधित आइटम्स को नमूना के आधार पर Microsoft ट्री व्यू कंट्रोल का उपयोग करके पदानुक्रमित क्रम में व्यवस्थित किया जाए। डेटा तालिका।

मैंने पिछले हफ्ते एक बिंदु बनाया है, कि ट्री व्यू कंट्रोल के डेटा में संबंधित आइटम जरूरी नहीं कि एक दूसरे के बगल में हों। इसके बाद, आप सापेक्ष . को अपडेट करने के बारे में अधिक स्पष्ट हो जाएंगे चाइल्ड नोड्स की कुंजी, तालिका में रिकॉर्ड की भौतिक स्थिति पर ध्यान दिए बिना, लेकिन इसके मूल नोड आईडी के साथ संबंध पर आधारित है।

यह वह डेटा तालिका थी जिसका हमने पिछले सप्ताह के अभ्यास के साथ उपयोग किया है और समाप्त किया है:

क्या आप उपरोक्त तालिका के अंत में मदों की निम्नलिखित सूची जोड़ सकते हैं और उनके माता-पिता फ़ील्ड मानों को अपडेट कर सकते हैं ताकि ट्री व्यू डिस्प्ले नीचे दी गई नमूना छवि की तरह दिखे:

तालिका . के लिए नए रिकॉर्ड आइटम रिकॉर्ड संबंधित फ़ील्ड :

  1. पाठ क्षेत्र।
  2. नंबर फ़ील्ड.
  3. दिनांक/समय फ़ील्ड.
  4. हाइपरलिंक फ़ील्ड।

फ़ॉर्म संबंधित नियंत्रण:

  1. टेक्स्ट बॉक्स।
  2. कमांड बटन।
  3. कॉम्बो बॉक्स।
  4. सूची बॉक्स।

रिपोर्ट करें संबंधित नियंत्रण:

  1. टेक्स्ट बॉक्स।
  2. लेबल.
  3. ग्राफ़ चार्ट.

इन आइटम्स को पेरेंट आईडी मान असाइन करें ताकि ट्री व्यू डिस्प्ले निम्न छवि की तरह दिखे:

अब, हम एक एमएस-एक्सेस प्रोजेक्ट मेनू के निर्माण के साथ आगे बढ़ेंगे और सीखेंगे कि इसे बनाने में क्या लगता है। एक साधारण मेनू चित्र नीचे दिया गया है:


यह विकल्पों के केवल तीन समूहों के साथ एक साधारण मेनू है:प्रपत्र, रिपोर्ट दृश्य और मैक्रोज़।

फ़ॉर्म . के अंतर्गत समूह दो विकल्प दिए गए हैं, पहला ट्री व्यू नियंत्रण मेनू तालिका रिकॉर्ड प्रदर्शित करता है। दूसरा विकल्प समान रिकॉर्ड्स को निरंतर प्रपत्र मोड में प्रदर्शित करता है।

पहला विकल्प रिपोर्ट दृश्य . के अंतर्गत उत्पादों पर एक रिपोर्ट प्रदर्शित करता है श्रेणी NorthWind.accdb . की श्रेणियाँ तालिका से रिकॉर्ड, डेटाबेस।

दूसरा विकल्प उत्पाद सूची-मूल्य रिपोर्ट प्रदर्शित करता है।

तीसरा विकल्प एक पैरामीटर खोलता है फ़ॉर्म ताकि उपयोगकर्ता न्यूनतम . सेट कर सके अधिकतम और अधिकतम उत्पाद सूची-मूल्य रिपोर्ट के लिए डेटा को फ़िल्टर करने के लिए अधिकतम सूची-मूल्य मान श्रेणी।

मैक्रोज़ प्रक्रियाओं . के अंतर्गत समूह, दोनों विकल्प चलते हैं Macro1 और मैक्रो2 क्रमशः और विभिन्न संदेश प्रदर्शित करते हैं।

हमें सामान्य ट्री व्यू की विशिष्ट आईडी, विवरण और पेरेंटआईडी डेटा फ़ील्ड के अलावा, कुछ अतिरिक्त फ़ील्ड के साथ उपरोक्त विकल्प रिकॉर्ड के साथ एक मेनू तालिका की आवश्यकता है। मेनू तालिका छवि नीचे दी गई है:

उपरोक्त संरचना के साथ एक तालिका बनाएं, उपरोक्त रिकॉर्ड जोड़ें, और इसे मेनू . नाम से सहेजें . आईडी फ़ील्ड AutoNumber है, PID, और टाइप करें फ़ील्ड संख्यात्मक फ़ील्ड हैं, अन्य टेक्स्ट फ़ील्ड हैं।

हम पहले तीन डेटा फ़ील्ड से परिचित हैं:अद्वितीय ID , विवरण, और अभिभावक आईडी खेत। यहां, मैंने पेरेंटआईडी फ़ील्ड नाम को छोटा कर दिया है PID

हमें मेनू तालिका में चार और फ़ील्ड चाहिए, एक फ़ील्ड टाइप करें ऑब्जेक्ट प्रकार कोड के लिए, और तीन फ़ील्ड फ़ॉर्म . के लिए , रिपोर्ट करें, और मैक्रो

टाइप करें उपयोगकर्ता द्वारा क्लिक किए गए विकल्प की पहचान करने के लिए फ़ील्ड में एक्सेस ऑब्जेक्ट टाइप न्यूमेरिक कोड होते हैं।

  • फ़ॉर्म फ़ील्ड फ़ॉर्म नाम, . के लिए है वस्तु प्रकार कोड 1,
  • रिपोर्ट फ़ील्ड में रिपोर्ट नाम, . शामिल हैं वस्तु प्रकार कोड 2,
  • मैक्रो फ़ील्ड मैक्रो नाम, . के लिए है ऑब्जेक्ट प्रकार कोड 3.

नोट: ऑब्जेक्ट के सभी नाम एक कॉलम में रखे जा सकते हैं। हमने केवल स्पष्टता के लिए अलग-अलग क्षेत्रों का उपयोग किया है। यदि आप ऐसा करते हैं तो VBA कोड में परिवर्तन करें, जहाँ भी यह विभिन्न फ़ील्ड नामों का संदर्भ देता है।

कोड नंबरों के आधार पर हम उनके संबंधित क्षेत्रों से ऑब्जेक्ट नाम चुन सकते हैं और DoCmd.Openform पर कॉल कर सकते हैं। या Docmd.OpenReport या Docmd.RunMacro चाइल्ड नोड क्लिक पर कार्रवाई निष्पादित करने के लिए।

अब, हमें चाइल्ड नोड्स पर टाइप कोड और ऑब्जेक्ट नेम को स्टोर करने की आवश्यकता है। जब हम ट्री व्यू कंट्रोल में नोड्स जोड़ना शुरू करेंगे तो हम उस विषय को उठाएंगे।

हमें नमूना प्रपत्रों और रिपोर्टों के लिए दो और डेटा तालिकाओं की आवश्यकता है। श्रेणियां तालिका और उत्पाद टेबल, NorthWind.accdb . से नमूना डेटाबेस। आपका समय बचाने के लिए मैंने इस पेज के अंत में डेमो डेटाबेस को सभी वस्तुओं और कार्यक्रमों के साथ डाउनलोड करने और इसे आज़माने के लिए संलग्न किया है।

डेटा एंट्री नाम के साथ मेनू टेबल का उपयोग करके दो फॉर्म बनाएं और दूसरा प्रपत्र डेटा दृश्य लगातार फॉर्म मोड।

दो रिपोर्ट बनाएं, एक रिपोर्ट नाम के साथ श्रेणियाँ तालिका पर:श्रेणियाँ, उत्पाद सूची . नाम से उत्पाद तालिका पर एक अन्य रिपोर्ट . एक लंबा लेबल जोड़ें उत्पाद प्रविष्टि रिपोर्ट पर मुख्य शीर्षक के नीचे नियंत्रण करें और नाम संपत्ति मान को श्रेणी में बदलें .

दो अनबाउंड टेक्स्टबॉक्स के साथ एक छोटा फॉर्म बनाएं और उनका नाम संपत्ति मूल्य न्यूनतम में बदलें &अधिकतम, नीचे दिए गए डिज़ाइन की तरह:

ऊपर दिखाए अनुसार दो कमांड बटन जोड़ें। कैप्शन बदलें रिपोर्ट खोलें . के लिए पहले बटन का संपत्ति मूल्य टी और नाम cmdReport . के लिए संपत्ति का मान ।

दूसरे कमांड बटन के कैप्शन को रद्द करें . में बदलें और नाम संपत्ति का मान cmdरद्द करें . के लिए ।

प्रपत्र का कोड मॉड्यूल प्रदर्शित करें। फॉर्म मॉड्यूल में निम्नलिखित कोड को कॉपी और पेस्ट करें और फॉर्म को सेव करें:

Private Sub cmdOpen_Click()
Dim mn, mx, fltr As String
mn = Nz(Me![Min], 0)
mx = Nz(Me![Max], 9999)
If (mn + mx) > 0 Then
    fltr = "[List Price] > " & mn & " And " & "[List Price] <= " & mx
    DoCmd.OpenReport "Products Listing", acViewReport, , fltr, , fltr
Else
    DoCmd.OpenReport "Products Listing", acViewReport
End If

End Sub

Private Sub cmdCancel_Click()
DoCmd.Close
End Sub

जब उपयोगकर्ता अपने संबंधित टेक्स्टबॉक्स में न्यूनतम और अधिकतम सूची मूल्य सीमा दर्ज करके एक मूल्य सीमा निर्धारित करता है तो रिपोर्ट फ़िल्टर मानदंड स्ट्रिंग बनाई जाती है। रिपोर्ट फ़िल्टर स्ट्रिंग मान उत्पाद प्रविष्टि को पास कर दिया जाता है ओपन रिपोर्ट कमांड पैरामीटर के रूप में रिपोर्ट करें। फ़िल्टर स्ट्रिंग मान को OpenArgs . के रूप में भी पास किया जाता है (खुला तर्क) पैरामीटर।

फ़िल्टर पैरामीटर न्यूनतम और अधिकतम फ़ील्ड में निर्दिष्ट मानदंड के आधार पर रिपोर्ट डेटा को फ़िल्टर करता है, और खुले तर्क मान को रेंज में कॉपी किया जाता है रिपोर्ट के खुलने पर कैप्शन को लेबल करें।

निम्नलिखित कोड को उत्पाद सूची में कॉपी और पेस्ट करें रिपोर्ट का VBA मॉड्यूल:

Private Sub Report_Open(Cancel As Integer)
    DoCmd.Close acForm, "Parameter"
    Me.Range.Caption = Nz(Me.OpenArgs, "")
End Sub
  1. frmMenu, . नाम से एक नया फ़ॉर्म बनाएं और Microsoft TreeView Control जोड़ें Activex नियंत्रण की सूची से। नीचे डिज़ाइन दृश्य में दिखाए अनुसार नियंत्रण का आकार बदलें:

  2. ट्री व्यू कंट्रोल के नाम को ट्री व्यू0 . में बदलें सामान्य संपत्ति पत्रक में।

  3. ट्री व्यू नियंत्रण के नीचे एक कमांड बटन जोड़ें। इसका नाम बदलें cmdExit . के लिए संपत्ति का मान और कैप्शन बाहर निकलें . के लिए संपत्ति का मूल्य ।

  4. ट्री व्यू कंट्रोल पर राइट-क्लिक करें और TreeCtrl_Object . को हाइलाइट करें विकल्प चुनें और गुण . चुनें संपत्ति पत्रक प्रदर्शित करने के लिए।

  5. निम्नलिखित संपत्ति मूल्यों को नीचे दिए गए अनुसार बदलें:

  • शैली =7 (tvwTreeLinesPlusMinusPictureText)
  • लाइन स्टाइल =1 (tvwRootLines)
  • लेबल एडिट =1 (tvwManual)

पिछले हफ्ते हमने पहले दो संपत्ति मूल्यों को बदल दिया है। जब लेबल संपादित करें प्रॉपर्टी का डिफ़ॉल्ट मान 0 - . है tvwस्वचालित, नोड पर दो बार क्लिक करने पर (डबल-क्लिक नहीं) नोड-टेक्स्ट एडिट मोड पर जाएगा और आप टेक्स्ट को बदल सकते हैं। लेकिन यह सीधे डेटा स्रोत फ़ील्ड को अपडेट नहीं करेगा। इसे 1 – tvwManual . में बदलकर इसे संपादन मोड में जाने से रोकेगा।

हम फॉर्म_लोड () ईवेंट प्रक्रिया में निम्नलिखित पंक्तियों को जोड़कर कोड के माध्यम से इसे बदल सकते हैं:

With Me.TreeView0.Object
    .Style = tvwTreelinesPlusMinusPictureText
    .LineStyle = tvwRootLines	
    .LabelEdit = tvwManual
End With

पिछले सप्ताह हमने Form_Load() . का उपयोग किया है रूट-लेवल और चाइल्ड नोड्स बनाने के लिए ट्री व्यू नोड मानों को पढ़ने की घटना प्रक्रिया। हमें अतिरिक्त कोड की कुछ पंक्तियों के साथ यहां भी उसी प्रक्रिया की आवश्यकता है।

इसके अलावा, हमें Node_Click() . को फंसाने की जरूरत है उपयोगकर्ता ने कौन सा विकल्प चुना है, यह जांचने के लिए नोड्स की घटना।

निम्नलिखित वीबीए कोड को फॉर्म मॉड्यूल में कॉपी और पेस्ट करें और फॉर्म को सेव करें।

Option Compare Database Option Explicit Dim tv As MSComctlLib.TreeView Const KeyPrfx As String = "X" Private Sub Form_Load() Dim db As Database Dim rst As Recordset Dim nodKey As String Dim PKey As String Dim strText As String Dim strSQL As String Dim tmpNod As MSComctlLib.Node Dim Typ As Variant Set tv = Me.TreeView0.Object tv.Nodes.Clear

‘Change the TreeView Control Properties

With tv
    .Style = tvwTreelinesPlusMinusPictureText
    .LineStyle = tvwRootLines
    .LabelEdit = tvwManual
    .Font.Name = "Verdana"
End With

strSQL = "SELECT ID, Desc, PID, Type,Macro,Form,Report FROM Menu;" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL, dbOpenDynaset) Do While Not rst.EOF And Not rst.BOF If Nz(rst!PID, "") = "" Then nodKey = KeyPrfx & CStr(rst!ID) strText = rst!Desc Set tmpNod = tv.Nodes.Add(, , nodKey, strText) 'Root-Level Node Description in Bold letters With tmpNod .Bold = True End With Else PKey = KeyPrfx & CStr(rst!PID) nodKey = KeyPrfx & CStr(rst!ID) strText = rst!Desc Set tmpNod = tv.Nodes.Add(PKey, tvwChild, nodKey, strText) 'Check for the presense of Type Code If Nz(rst!Type, 0) > 0 Then Typ = rst!Type Select Case Typ Case 1 'save type Code & Form Name in Node Tag Property tmpNod.Tag = Typ & rst!Form Case 2 'save type Code & Report Name in Node Tag Property tmpNod.Tag = Typ & rst!Report Case 3 'save type Code & Macro Name in Node Tag Property tmpNod.Tag = Typ & rst!Macro End Select End If End If rst.MoveNext Loop rst.Close Set rst = Nothing Set db = Nothing End Sub Private Sub cmdExit_Click() If MsgBox("Close Menu Form? ", vbYesNo, "cmdExit_Click()") = vbYes Then DoCmd.Close End If End Sub Private Sub TreeView0_NodeClick(ByVal Node As Object) Dim varTag, typeid As Integer Dim objName As String, nodOn as MSComctlLib.Node If Node.Expanded = False Then Node.Expanded = True Else Node.Expanded = False End If

‘Reset the earlier lighlight to normal

For Each nodOn In tv.Nodes
    nodOn.BackColor = vbWhite
    nodOn.ForeColor = vbBlack
Next

‘changes BackColor to light Blue and ForeColor White

tv.Nodes.Item(Node.Key).BackColor = RGB(0, 143, 255)
tv.Nodes.Item(Node.Key).ForeColor = vbWhite

‘—Highlight code ends-

varTag = Nz(Node.Tag, "") If Len(varTag) > 0 Then typeid = Val(varTag) objName = Mid(varTag, 2) End If Select Case typeid Case 1 DoCmd.OpenForm objName, acNormal Case 2 DoCmd.OpenReport objName, acViewPreview Case 3 DoCmd.RunMacro objName End Select End Sub

मॉड्यूल के वैश्विक घोषणा क्षेत्र पर, ट्री व्यू ऑब्जेक्ट घोषित किया जाता है। एक स्थिर चर KeyPrfx "X" मान के साथ घोषित किया गया है।

फॉर्म_लोड () पिछले सप्ताह के लेख की घटना प्रक्रिया हमने अतिरिक्त कोड के साथ संशोधित की है। मैंने नए कोड खंड पर टिप्पणी की है कि यह क्या करता है इसका संकेत देने के लिए लेकिन यह समझाएगा कि यह क्या करता है।

प्रक्रिया डेटाबेस, रिकॉर्डसेट और चार स्ट्रिंग चर घोषित करती है। अगली दो पंक्तियाँ एक अस्थायी नोड ऑब्जेक्ट घोषित करती हैं:tmpNod और टाइप करें भिन्न चर घोषित किए गए हैं।

इसके बाद, ट्री व्यू ऑब्जेक्ट टीवी TreeView0 . के साथ असाइन किया गया है प्रपत्र पर वस्तु। TreeView0 के मौजूदा नोड्स, यदि कोई हों, को इस कथन से साफ़ किया जाता है:tv.Nodes.Clear , सभी नोड्स को फिर से लोड करने की तैयारी में।

हमने ट्री व्यू नियंत्रण के गुणों को संपत्ति पत्रक के बजाय कोड के माध्यम से संशोधित करने के लिए निम्नलिखित कोड लागू किया है।

With tv
    .Style = tvwTreelinesPlusMinusPictureText
    .LineStyle = tvwRootLines
    .LabelEdit = tvwManual
    .Font.Name = "Verdana"
End With 

ट्री व्यू फ़ॉन्ट को वर्दाना में बदल दिया गया है। इसके अलावा, हम एक के बाद एक समूह को मैन्युअल रूप से विस्तारित या संक्षिप्त करने के बजाय, एक क्लिक के साथ सभी मेनू समूहों को विस्तारित या संक्षिप्त करने जैसे कुछ और कार्य लाएंगे।

नई SQL स्ट्रिंग को मेनू तालिका से नए फ़ील्ड प्रकार, प्रपत्र, रिपोर्ट और मैक्रो फ़ील्ड जोड़ने के लिए संशोधित किया गया है।

PID . में किसी भी मान की उपस्थिति के लिए मेनू तालिका के पहले रिकॉर्ड की जांच की जाती है फ़ील्ड, यदि यह खाली है तो यह एक रूट-स्तरीय नोड रिकॉर्ड है। इसे ट्री व्यू ऑब्जेक्ट में रूट लेवल नोड के रूप में जोड़ा जाता है और इसका संदर्भ tmpNod में सहेजा जाता है वस्तु।

नोड में कई गुण होते हैं जैसे फोरकलर, बोल्ड, और उसमें से कई अन्य हमने बोल्ड . लिया है संपत्ति और असाइन किया गया सत्य मूल स्तर . बनाने के लिए नोड अपने चाइल्ड नोड्स से अलग दिखता है।

यदि यह रूट नोड प्रविष्टि नहीं है तो इसका PID मान है, प्रोग्राम अन्य लेता है क्लॉज और रिकॉर्ड को चाइल्ड नोड के रूप में जोड़ा जाता है। यहां, हम प्रकार . की जांच करते हैं क्षेत्र मूल्य। यदि इसमें तीन मानों में से एक है 1, 2, या 3 तो हमें फॉर्म, रिपोर्ट, या मैक्रो नाम से टाइप कोड के साथ मूल्य लेना होगा और उन्हें एक साथ जोड़ना होगा (जैसे “1Data entry” , “2श्रेणी सूचीकरण” आदि) और इसे टैग . में सहेजें चाइल्ड नोड्स की संपत्ति। हम एक्सेस कंट्रोल में टैग प्रॉपर्टी से परिचित हैं, जैसे टेक्स्टबॉक्स, लेबल, कमांड बटन, और अन्य, लेकिन हम शायद ही कभी इसका इस्तेमाल करते हैं।

cmdExit_Click() यदि उपयोगकर्ता की प्रतिक्रिया सकारात्मक है तो प्रक्रिया मेनू फॉर्म को बंद कर देती है।

जब उपयोगकर्ता चाइल्ड नोड पर क्लिक करता है, तो हमारे द्वारा उसके टैग . में सहेजा गया मान आगे क्या करना है यह निर्धारित करने के लिए संपत्ति को निकाला और जांचा जाना चाहिए। इसके लिए हमें एक TreeView0_NodeClick() . की आवश्यकता है घटना प्रक्रिया।

Private Sub TreeView0_NodeClick(ByVal Node As Object) Dim varTag, typeid As Integer Dim objName As String, nodOn as MSComctlLib.Node If Node.Expanded = False Then Node.Expanded = True Else Node.Expanded = False End If

‘Reset the earlier lighlight to normal

For Each nodOn In tv.Nodes nodOn.BackColor = vbWhite nodOn.ForeColor = vbBlack Next nodOn

‘changes BackColor to light Blue and ForeColor White tv.Nodes.Item(Node.Key).BackColor = RGB(0, 143, 255) tv.Nodes.Item(Node.Key).ForeColor = vbWhite ‘—Highlight code ends- varTag = Nz(Node.Tag, "") If Len(varTag) > 0 Then typeid = Val(varTag) objName = Mid(varTag, 2) End If Select Case typeid Case 1 DoCmd.OpenForm objName, acNormal Case 2 DoCmd.OpenReport objName, acViewPreview Case 3 DoCmd.RunMacro objName End Select End Sub

क्लिक () ईवेंट प्रक्रिया को क्लिक किया गया नोड का संदर्भ . प्राप्त होता है ऑब्जेक्ट में एक पैरामीटर के रूप में नोड . इस प्रक्रिया की शुरुआत में, हमने कुछ चर घोषित किए हैं।

अगली कुछ पंक्तियाँ जाँचती हैं कि क्लिक किया गया नोड विस्तारित या संक्षिप्त अवस्था में है या नहीं।

आम तौर पर, एक नोड का विस्तार करने के लिए, उसके छिपे हुए बच्चे नोड्स को दिखाने के लिए, या तो हम + पर क्लिक करते हैं (प्लस सिंबल) किसी नोड के बाईं ओर या नोड पर ही डबल-क्लिक करें। नोड पर दोबारा डबल-क्लिक करने या - (माइनस सिंबल) पर क्लिक करने से चाइल्ड नोड्स छिप जाएंगे।

निम्नलिखित कोड खंड के साथ हम एक क्लिक के साथ चाइल्ड-नोड्स को विस्तृत या संक्षिप्त कर सकते हैं:

If Node.Expanded = False Then
    Node.Expanded = True
Else
    Node.Expanded = False
End If 

अगली छह निष्पादन योग्य लाइनें सुनिश्चित करती हैं कि नोड को प्राप्त क्लिक पर प्रकाश डाला जाए।

‘Reset the earlier Highlight to Normal

For Each nodOn In tv.Nodes nodOn.BackColor = vbWhite nodOn.ForeColor = vbBlack Next nodOn

‘Changes BackColor to light Blue and ForeColor White tv.Nodes.Item(Node.Key).BackColor = RGB(0, 143, 255) tv.Nodes.Item(Node.Key).ForeColor = vbWhite ‘—Highlight code ends-

इसके बाद, टैग प्रॉपर्टी का मान varTag . में पढ़ा जाता है चर। यदि यह खाली नहीं है तो मान दो भागों में विभाजित हो जाता है। संख्यात्मक मान निकाला जाता है और टाइपिड . में सहेजा जाता है चर और वस्तु का नाम भाग चर objName . में सहेजा गया है ।

Typid चर में मान के आधार पर Docmd फ़ॉर्म खोलने, रिपोर्ट करने या मैक्रो चलाने के लिए निष्पादित किया जाता है।

हम मेनू के शीर्ष पर दो और कमांड बटन जोड़ेंगे। एक एक क्लिक से सभी नोड्स का विस्तार करने के लिए और दूसरा सभी नोड्स को संक्षिप्त करने के लिए।

  1. ट्री व्यू कंट्रोल के शीर्ष क्षेत्र में दो और कमांड बटन जोड़ें जैसा कि नीचे डिजाइन में दिखाया गया है।
  2. नाम बदलें cmdExpand . करने के लिए बाएँ कमांड बटन का गुण मान और कैप्शन करने के लिए सभी का विस्तार करें
  3. इसी प्रकार, दाईं ओर स्थित कमांड बटन का नाम change बदलें cmdसंक्षिप्त . की संपत्ति और कैप्शन करने के लिए सभी को संक्षिप्त करें।
  4. निम्न VBA कोड को मौजूदा कोड के नीचे frmMenu में कॉपी और पेस्ट करें फॉर्म मॉड्यूल और फॉर्म को सेव करें।
Private Sub cmdExpand_Click()
Dim Nodexp As MSComctlLib.Node

For Each Nodexp In tv.Nodes
    If Nodexp.Expanded = False Then
        Nodexp.Expanded = True
    End If
Next Nodexp
End Sub


Private Sub cmdCollapse_Click()
Dim Nodexp As MSComctlLib.Node

For Each Nodexp In tv.Nodes
    If Nodexp.Expanded = True Then
        Nodexp.Expanded = False
    End If
Next Nodexp
End Sub

cmdExpand_Click() . की शुरुआत में घटना, हमने एक ट्री व्यू नोड ऑब्जेक्ट घोषित किया है NodExp. के लिए. . . अगला लूप एक समय में एक नोड लेता है और जांचता है कि यह विस्तारित रूप में है या नहीं। यदि नहीं तो इसका विस्तारित संपत्ति का मान सत्य . पर सेट है .

इसी तरह, cmdCollapse_Click() घटना एक समान जांच करती है और यदि यह विस्तारित स्थिति में है तो विस्तारित संपत्ति मान गलत पर सेट है।

फुल ट्री व्यू कंट्रोल के सभी नोड्स का विस्तार किया जा सकता है और उनके सभी चाइल्ड नोड्स को एक बार में दृश्यमान बनाता है या रूट-लेवल नोड्स को छोड़कर सभी चाइल्ड नोड्स को छिपाकर रखा जाता है।

आशा है कि आपको अपने प्रोजेक्ट के लिए नया मेनू बनाने में मज़ा आया होगा। यदि आप डिज़ाइन कार्य को चरण दर चरण चलाते हैं तो आपका मेनू शीर्ष पर दी गई समाप्त मेनू छवि जैसा दिखना चाहिए।

वर्ष 2007 के दौरान, मैंने कई पृष्ठों के साथ टैब नियंत्रण का उपयोग करते हुए, वाहन सेवा अनुबंध प्रणाली के लिए अपनी परियोजनाओं में से एक में एक मेनू तैयार किया है। प्रत्येक पृष्ठ में 10 या अधिक विकल्प होते हैं और प्रत्येक पृष्ठ को उसी क्षेत्र में बारी-बारी से प्रदर्शित करने के लिए जब उपयोगकर्ता मेनू के दोनों ओर पंक्तिबद्ध कमांड बटन पर क्लिक करता है। दाईं ओर के कमांड बटन भी चयन के आधार पर बदलते हैं। बाईं ओर का बटन।

बड़ा करने के लिए क्लिक करें

आप इस लिंक पर टैब नियंत्रण लेख के साथ मेनू डिज़ाइन पा सकते हैं:https://www.msaccesstips.com/2007/06/control-screen-menu-design.html


कक्षा मॉड्यूल

  1. एमएस-एक्सेस क्लास मॉड्यूल और वीबीए
  2. एमएस-एक्सेस वीबीए क्लास ऑब्जेक्ट और एरेज़
  3. एमएस-एक्सेस बेस क्लास और व्युत्पन्न ऑब्जेक्ट
  4. VBA-बेस क्लास और व्युत्पन्न ऑब्जेक्ट-2
  5. आधार वर्ग और व्युत्पन्न वस्तु प्रकार
  6. एमएस-एक्सेस रिकॉर्डसेट और क्लास मॉड्यूल
  7. एक्सेस क्लास मॉड्यूल और रैपर क्लासेस
  8. आवरण वर्ग की कार्यक्षमता


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आपके सीआरएम डेटाबेस में शामिल करने के लिए 4 प्रकार की जानकारी

  2. माइक्रोसॉफ्ट ओएलई डीबी अप्रचलित! लॉन्ग लाइव एडीओ!

  3. माइक्रोसॉफ्ट एक्सेस में रिपोर्ट में हेडर और फुटर कैसे जोड़ें

  4. एक्सेस 2016 में एक खाली डेटाबेस कैसे बनाएं

  5. एमएस एक्सेस में संग्रहित प्रक्रिया को निष्पादित करते समय इस सामान्य त्रुटि से बचें