आइए अब नियंत्रण (Controls) का उपयोग करने का अभ्यास करने के लिए एक छोटा सा अभ्यास देखें।
तैयार प्रपत्र और नियंत्रण तत्वों वाली एक फ़ाइल है। हमें ऐसा कोड लिखने की ज़रूरत है जो सभी तत्वों को काम में लाए ताकि उपयोगकर्ता फ़ॉर्म के साथ इंटरेक्शन के माध्यम से हमारे तात्कालिक डेटाबेस को पॉप्युलेट कर सके।
यहां डाउनलोड करने के लिए Excel फ़ाइल है: controls_exercise.xls
अब यह स्पष्ट होना चाहिए कि यहां लक्ष्य फॉर्म का उपयोग करके तालिका को भरना है।
विचार करने योग्य कुछ बिंदु:
सबसे पहले, हमें उपयोग को आसान बनाने के लिए अपने फॉर्म की Zoom प्रॉपर्टी को 120 तक बढ़ाना होगा:
हमने पहले ही चेकिंग विकल्प बटन (नियंत्रण पर पहले पाठ में) को कवर कर लिया है, इसलिए यहां हम एक सरल समाधान का उपयोग करते हैं।
"श्रीमती" को डिफ़ॉल्ट रूप से चुना जाता है (संपत्ति Value: True), यानी, इसे चुनते समय हम पते की जांच नहीं करेंगे।
Private Sub CommandButton_Close_Click() Unload Me End Sub
Private Sub UserForm_Initialize() 'फॉर्म खुला होने पर सूची लोड हो रही है For i = 1 To 252 'देश वर्कशीट से 252 देशों की सूची तैयार करना ComboBox_Country.AddItem Sheets("Country").Cells(i, 1) Next End Sub
यदि कोई नियंत्रण खाली है तो एक सरल समाधान एक संवाद प्रदर्शित करना होगा।
Private Sub CommandButton_Add_Click() If TextBox_Last_Name.Value = "" Or TextBox_First_Name.Value = "" Or TextBox_Address.Value = "" Or TextBox_Place.Value = "" Or ComboBox_Country.Value = "" Then MsgBox "Form incomplete" Else 'यहां संपर्क दर्ज करने के निर्देश... End If End Sub
लेकिन इसे थोड़ा और जटिल बनाने के लिए, प्रत्येक तत्व की अलग से जाँच की जानी चाहिए, और यदि उनमें से कोई भी खाली है, तो उसके नाम का रंग () बदलकर लाल कर देना चाहिए:
Private Sub CommandButton_Add_Click() 'नाम का रंग काला पर सेट करें Label_Last_Name.ForeColor = RGB(0, 0, 0) Label_First_Name.ForeColor = RGB(0, 0, 0) Label_Address.ForeColor = RGB(0, 0, 0) Label_Place.ForeColor = RGB(0, 0, 0) Label_Country.ForeColor = RGB(0, 0, 0) 'सामग्री नियंत्रण If TextBox_Last_Name.Value = "" Then 'यदि कुछ भी निर्दिष्ट नहीं है... Label_Last_Name.ForeColor = RGB(255, 0, 0) 'शीर्षक का रंग लाल पर सेट करें ElseIf TextBox_First_Name.Value = "" Then Label_First_Name.ForeColor = RGB(255, 0, 0) ElseIf TextBox_Address.Value = "" Then Label_Address.ForeColor = RGB(255, 0, 0) ElseIf TextBox_Place.Value = "" Then Label_Place.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_Country.Value = "" Then Label_Country.ForeColor = RGB(255, 0, 0) Else 'यहां संपर्क दर्ज करने के निर्देश... End If End Sub
उपरोक्त कोड में दर्शाए गए स्थान पर निम्नलिखित कोड डाला जाना चाहिए (टिप्पणियाँ देखें):
Dim row_number As Integer, salutation As String 'अपील का चयन For Each salutation_button In Frame_Salutation.Controls If salutation_button.Value Then salutation = salutation_button.Caption 'अपील चयनित End If Next 'row_number = कॉलम +1 में अंतिम गैर-रिक्त सेल की पंक्ति संख्या row_number = Range("A65536").End(xlUp).Row + 1 'वर्कशीट में मान सम्मिलित करना Cells(row_number, 1) = salutation Cells(row_number, 2) = TextBox_Last_Name.Value Cells(row_number, 3) = TextBox_First_Name.Value Cells(row_number, 4) = TextBox_Address.Value Cells(row_number, 5) = TextBox_Place.Value Cells(row_number, 6) = ComboBox_Country.Value 'चिपकाने के बाद, मूल मान वापस आ जाते हैं OptionButton1.Value = True TextBox_Last_Name.Value = "" TextBox_First_Name.Value = "" TextBox_Address.Value = "" TextBox_Place.Value = "" ComboBox_Country.ListIndex = -1
बस, यहां आपके पास अभ्यास के लिए पूरा कोड और डाउनलोड करने के लिए फ़ाइल है:
Private Sub CommandButton_Close_Click() Unload Me End Sub Private Sub UserForm_Initialize() '"देश" शीट पर 252 देशों की सूची For i = 1 To 252 ComboBox_Country.AddItem Sheets("Country").Cells(i, 1) Next End Sub Private Sub CommandButton_Add_Click() 'नाम का रंग काला पर सेट करें Label_Last_Name.ForeColor = RGB(0, 0, 0) Label_First_Name.ForeColor = RGB(0, 0, 0) Label_Address.ForeColor = RGB(0, 0, 0) Label_Place.ForeColor = RGB(0, 0, 0) Label_Country.ForeColor = RGB(0, 0, 0) 'सामग्री नियंत्रण If TextBox_Last_Name.Value = "" Then 'यदि कुछ भी निर्दिष्ट नहीं है... Label_Last_Name.ForeColor = RGB(255, 0, 0) 'शीर्षक का रंग लाल पर सेट करें ElseIf TextBox_First_Name.Value = "" Then Label_First_Name.ForeColor = RGB(255, 0, 0) ElseIf TextBox_Address.Value = "" Then Label_Address.ForeColor = RGB(255, 0, 0) ElseIf TextBox_Place.Value = "" Then Label_Place.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_Country.Value = "" Then Label_Country.ForeColor = RGB(255, 0, 0) Else 'यदि फॉर्म भरा हुआ है, तो मान वर्कशीट में चिपका दिए जाएंगे Dim row_number As Integer, salutation As String 'अपील का चयन For Each salutation_button In Frame_Salutation.Controls If salutation_button.Value Then salutation = salutation_button.Caption End If Next 'row_number = कॉलम +1 में अंतिम गैर-रिक्त सेल की पंक्ति संख्या row_number = Range("A65536").End(xlUp).Row + 1 'वर्कशीट में मान सम्मिलित करना Cells(row_number, 1) = salutation Cells(row_number, 2) = TextBox_Last_Name.Value Cells(row_number, 3) = TextBox_First_Name.Value Cells(row_number, 4) = TextBox_Address.Value Cells(row_number, 5) = TextBox_Place.Value Cells(row_number, 6) = ComboBox_Country.Value 'डेटा डालने के बाद, हम प्रारंभिक मान लौटाते हैं OptionButton1.Value = True TextBox_Last_Name.Value = "" TextBox_First_Name.Value = "" TextBox_Address.Value = "" TextBox_Place.Value = "" ComboBox_Country.ListIndex = -1 End If End Sub
यहां डाउनलोड के लिए Excel फ़ाइल है: controls_exercise2.xls