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

सबफॉर्म के साथ ट्री व्यू नियंत्रण

परिचय।

ट्री व्यू कंट्रोल ट्यूटोरियल के इस सत्र में, हम मुख्य फॉर्म frmTreeViewtab पर ट्री व्यू कंट्रोल के साथ दो सबफॉर्म का उपयोग करेंगे। . हमने अपने पहले के डेमो प्रोजेक्ट से प्रीलोडेड इमेज के साथ इमेजलिस्ट कंट्रोल को इंपोर्ट किया है।
हम उसी lvश्रेणी का उपयोग करेंगे और lvउत्पाद तालिकाएँ जिनका उपयोग हमने अपने पिछले प्रोजेक्ट के लिए किया है
lvश्रेणी तालिका की प्राथमिक कुंजी फ़ील्ड (CID) और विवरण फ़ील्ड (श्रेणी) मान TreeView Nodes Add() विधि की कुंजी हैं और पाठ पैरामीटर मान, क्रमशः।

lvProducts तालिका में उत्पाद कोड, विवरण स्टॉक-इकाई-मात्रा, और सूची मूल्य जैसे प्रत्येक उत्पाद पर विस्तृत जानकारी है।

इसके अलावा, lvProducts तालिका में ParentID . है श्रेणी कोड (CID) मान के साथ अद्यतन किया गया फ़ील्ड। किसी विशेष श्रेणी से संबंधित सभी उत्पाद आइटम पेरेंटआईडी फ़ील्ड पर (श्रेणी आईडी) सीआईडी ​​​​फ़ील्ड मान के साथ अपडेट किए जाते हैं। इस तरह दोनों टेबल्स में मास्टर-चाइल्ड रिलेशनशिप है।

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

वर्तमान रिकॉर्ड या उपयोगकर्ता द्वारा चयनित पहले उप-प्रपत्र पर रिकॉर्ड दूसरे उप-प्रपत्र पर संपादन के लिए टैब नियंत्रण के दूसरे पृष्ठ पर उपलब्ध है धूसर रंग से हाइलाइट की गई मुख्य फ़ील्ड लॉक हैं और इन्हें संपादित नहीं किया जा सकता है।

सबफॉर्म डिजाइन व्यू के साथ ट्री व्यू।

प्रपत्र का डिज़ाइन दृश्य frmTreeViewTab नीचे दिया गया है:

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

तीसरा अनबाउंड टेक्स्टबॉक्स (नाम p_ID) शुरू में पहले उत्पाद रिकॉर्ड के विशिष्ट आईडी (PID) मान के साथ अपडेट किया जाता है अन्यथा उपयोगकर्ता द्वारा चयनित रिकॉर्ड का मान अपडेट हो जाता है। पहले सबफ़ॉर्म पर चयनित उत्पाद रिकॉर्ड संशोधनों के लिए दूसरे सबफ़ॉर्म पर उपलब्ध है।

पहले के ट्यूटोरियल सत्रों के लिंक।

पहले के ट्यूटोरियल सत्र के लिंक तैयार संदर्भ के लिए नीचे दिए गए हैं:

  1. माइक्रोसॉफ्ट ट्री व्यू कंट्रोल ट्यूटोरियल
  2. ट्री व्यू कंट्रोल के साथ एक्सेस मेनू बनाना
  3. ट्री व्यू कंट्रोल को इमेज असाइन करना
  4. ट्री व्यू कंट्रोल-2 में इमेज असाइन करना
  5. ट्री व्यू कंट्रोल चेक-मार्क ऐड डिलीट नोड्स
  6. ट्री व्यू इमेजकॉम्बो ड्रॉप-डाउन एक्सेस मेनू
  7. ट्री व्यू नोड्स को ड्रैग एंड ड्रॉप द्वारा पुनर्व्यवस्थित करें
  8. एमएस-एक्सेस ट्री व्यू के साथ लिस्ट व्यू कंट्रोल
  9. सूची दृश्य नियंत्रण ड्रैग ड्रॉप इवेंट

CatId अनबाउंड टेक्स्टबॉक्स [लिंक मास्टर फ़ील्ड] . है पहले सबफॉर्म का संपत्ति मूल्य।

तीसरे अनबाउंड टेक्स्टबॉक्स पर उत्पाद कोड (p_ID ) [लिंक मास्टर फील्ड] . से जुड़ा हुआ है देखें . पर दूसरे सबफ़ॉर्म का गुण मान टैब पेज।

p_ID अनबाउंड टेक्स्टबॉक्स मान अपडेट हो जाता है जब पहली सबफॉर्म सामग्री रीफ्रेश होती है या जब उपयोगकर्ता द्वारा कोई आइटम चुना जाता है।

स्क्रीन का सामान्य दृश्य।

frmTreeViewTab . का सामान्य दृश्य फॉर्म नीचे दिया गया है:


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

फ़ॉर्म frmTreeViewTab कक्षा मॉड्यूल वीबीए कोड:

Option Compare Database
Option Explicit

Dim tv As MSComctlLib.TreeView
Dim imgList As MSComctlLib.ImageList
Const Prfx As String = "X"

Private Sub Form_Load()
Dim db As DAO.Database
Dim tbldef As TableDef

'Initialize TreeView Nodes
    Set tv = Me.TreeView0.Object
    tv.Nodes.Clear
'Initialixe ImageList Object
    Set imgList = Me.ImageList3.Object
    
'Modify TreeView Font Properties
With tv
    .Font.Size = 9
    .Font.Name = "Verdana"
    .ImageList = imgList 'assign preloaded imagelist control
 End With
    
   LoadTreeView 'Create TreeView Nodes

End Sub

Private Sub LoadTreeView()
    Dim Nod As MSComctlLib.Node
    Dim strCategory As String
    Dim strCatKey As String
    Dim strProduct As String
    Dim strPKey As String
    Dim strBelongsTo As String
    Dim strSQL As String
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    
    'Initialize treeview nodes
     tv.Nodes.Clear
    
    strSQL = "SELECT lvCategory.CID, lvCategory.Category, "
    strSQL = strSQL & "lvcategory.BelongsTo FROM lvCategory ORDER BY lvCategory.CID;"
    
    Set db = CurrentDb
    Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot)

    ' Populate all Records as Rootlevel Nodes
    Do While Not rst.BOF And Not rst.EOF
        If rst.AbsolutePosition = 1 Then
           Me![CatID] = rst![CID]
        End If
            strCatKey = Prfx & CStr(rst!CID)
            strCategory = rst!Category
            
            Set Nod = tv.Nodes.Add(, , strCatKey, strCategory, 1, 2)
            Nod.Tag = rst!CID
        rst.MoveNext
    Loop
    
    'In the second pass of the the same set of records
    'Move Child Nodes under their Parent Nodes
    rst.MoveFirst
    Do While Not rst.BOF And Not rst.EOF
        strBelongsTo = Nz(rst!BelongsTo, "")
        If Len(strBelongsTo) > 0 Then
            strCatKey = Prfx & CStr(rst!CID)
            strBelongsTo = Prfx & strBelongsTo
            strCategory = rst!Category
            
            Set tv.Nodes.Item(strCatKey).Parent = tv.Nodes.Item(strBelongsTo)
        End If
        rst.MoveNext
    Loop
    rst.Close
    

    TreeView0_NodeClick tv.Nodes.Item(1)
    
End Sub

Private Sub TreeView0_NodeClick(ByVal Node As Object)
Dim Cat_ID As String

'Initialize hidden unbound textbox 'Link Master Field' values
Cat_ID = Node.Tag
Me!CatID = Cat_ID
Me![xCategory] = Node.Text

End Sub

Private Sub cmdExit_Click()
    DoCmd.Close
End Sub


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

हमने अब तक MS-Access TreeView, ListView, ImageList, और ImageCombo कंट्रोल के साथ कई स्क्रीन डिज़ाइन की हैं और मुझे आशा है कि आप उन्हें अपने प्रोजेक्ट इंटरफ़ेस डिज़ाइन के लिए एक अच्छे संदर्भ बिंदु के रूप में पाएंगे।

ट्री व्यू कंट्रोल के लिए एमएस-ऑफिस वर्जन इश्यूज।

यदि आपको Microsoft Access के अपने संस्करण में डेमो डेटाबेस चलाने में कोई समस्या थी तो आप कुछ सुधारात्मक कार्रवाइयों के लिए निम्न लिंक का संदर्भ ले सकते हैं, जो आपकी समस्या को हल करने में सहायक हो सकता है:

इससे पहले, उपरोक्त नियंत्रण 64 बिट सिस्टम के तहत नहीं चल रहे थे। लेकिन, सितंबर 2017 में Microsoft ने MSCOMCTL.OCX लाइब्रेरी का एक अपडेट निकाला है और आपकी जानकारी के लिए Microsoft दस्तावेज़ का निम्नलिखित उद्धरण नीचे दिया गया है:

2017 अपडेट:1707 दस्तावेज़ के पूर्ण पाठ के लिए उपरोक्त दस्तावेज़ छवि पर क्लिक करें। निम्न लिंक कुछ उपयोगी संकेत सुझाता है।
  • सॉल्व्ड MSCOMCTL.OCX डाउनलोड रजिस्टर 64 बिट विन्डोज़

उपरोक्त ट्री व्यू नियंत्रण वस्तुओं के उपयोग से, हम अपनी नई परियोजनाओं के लिए बेहतर दिखने वाले और बेहतर प्रदर्शन करने वाले यूजर-इंटरफेस का निर्माण कर सकते हैं।

डेमो डेटाबेस डाउनलोड करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नीदरलैंड एक्सेस डेवलपर दिवस 2019 - 14 सितंबर

  2. एक्सेस ओडीबीसी डेटा स्रोतों से कैसे बात करता है? भाग 6

  3. डेटाबेस सटीकता में सुधार कैसे करें

  4. माइक्रोसॉफ्ट एक्सेस का उपयोग करने के चार तरीके

  5. क्या आपके कर्मचारी दूर से काम कर रहे हैं? अपने डेटा को सुरक्षित रखने का तरीका यहां बताया गया है।