2012-08-16 18 views
5

एक्सेस के दौरान टेक्स्टबॉक्स अपडेट करें, मेरे पास एक ऐसा फॉर्म है जिसमें तीन टेक्स्टबॉक्स हैं। मैं दोनों के संयोजन के साथ एक पाठ बॉक्स tbxCombinedName कहा जाता है अद्यतन करने के लिए कोशिश कर रहा हूँ:टाइपिंग

  • पाठ बॉक्स tbxLastName (व्यक्ति के अंतिम नाम)
  • पाठ बॉक्स tbxFirstName (व्यक्ति के प्रथम नाम)

मेरा सवाल है: मैं किस टेक्स्टबॉक्स प्रॉपर्टी का उपयोग करता हूं, ताकि मैं tbxLastName में टेक्स्ट टाइप कर रहा हूं, संयुक्त नाम टेक्स्टबॉक्स है अद्यतन और इसके बाद तालिका संपर्क में सहेजा गया।

Microsoft's website पर, मैं ने पाया है कि कदम प्रक्रियाओं जब एक पाठ बॉक्स में टाइप इस प्रकार हैं:

KeyDown → कुंजी दबाने → BeforeInsert → बदलें → KeyUp

मैं OnChange का उपयोग कर की कोशिश की है और OnKeyDown गुण, लेकिन कोई फायदा नहीं हुआ। कौन सी संपत्ति, जो कोड के साथ मिलती है, अपडेट-ए-यू-टाइप एक्शन को काम करने की अनुमति देगी?

Private Sub tbxLName_change() 

Dim lastName As String 
Dim nameCode As String 

lastName = tbxLName.Value 
Debug.Print lastName 
nameCode = tbxNameCode.Value 
nameCode = lastName 
Debug.Print nameCode 

End Sub 

अपने सभी मदद के लिए धन्यवाद अग्रिम में:

यह वही है कि मैंने पहले लिखा था, जो काम नहीं किया है।

उत्तर

6

यह उन कुछ मामलों में से एक है जहां आपको .text संपत्ति का संदर्भ लेना चाहिए।

बदलें घटना में:

lastName = tbxLName.Text 

जब एक नियंत्रण ध्यान केंद्रित है और यह नियंत्रण के दृश्य सामग्री को संदर्भित करता है .text संपत्ति ही उपलब्ध है।

हालांकि, यह एक डेटाबेस है और सामान्य नियम यह है कि आप गणना किए गए फ़ील्ड को स्टोर नहीं करते हैं। पूरा नाम आसानी से एक क्वेरी से प्राप्त किया जा सकता है।

+0

एक साधारण सवाल का जवाब है, लेकिन पूरी तरह से काम करता है। धन्यवाद –

+1

+1 एक प्रश्न से वांछित जानकारी प्राप्त करने पर अच्छी सलाह –

+0

क्या क्वेरी इस प्रारूप में प्रथम और अंतिम नाम को संसाधित कर सकती है: 'LLLLLL_F'? (एलएलएलएलएलएल अंतिम नाम के पहले 6 अक्षर हैं। एफ प्रथम नाम का पहला अक्षर है) –

1

बस नोटों की एक जोड़ी:

आप कुंजी दबाने के साथ जाने का है क्योंकि यह बदलने के लिए या कुंजी उपयोगकर्ता धक्का दिया नकारना करने की क्षमता प्रदान कर सकते हैं।

नीचे दिए गए उदाहरण में, केवल अक्षर अनुमति दी जाती है और लोअर केस अक्षरों ऊपरी मामलों रहे हैं:

Private Sub tbxLName_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
     Const ASCII_LOWER_RANGE = 65 
     Const ASCII_UPPER_RANGE = 122 
     Const ASCII_LOWER_A = 97 
     Const ASCII_LOWER_Z = 122 
     Const UPPER_MODIFIER = -32 
     Const ASCII_CANCEL_CODE = 0 

     Select Case KeyAscii 
      Case ASCII_LOWER_RANGE To ASCII_UPPER_RANGE 
       If KeyAscii >= ASCII_LOWER_A And KeyAscii <= ASCII_LOWER_Z Then 
        KeyAscii = KeyAscii + UPPER_MODIFIER 
       End If 
      Case Else 
       KeyAscii = ASCII_CANCEL_CODE 'Cancel Key Press 
     End Select 
End Sub 
+0

ray023 से NameRef के रूप में ये वही' lastName = tbxLName.Text' नहीं हैं। डिफ़ॉल्ट संपत्ति '.value' है और यह एमएस एक्सेस में' .text' जैसा नहीं है। '.text' प्रॉपर्टी ** ** केवल ** उपलब्ध है जब नियंत्रण पर ध्यान केंद्रित किया जाता है। – Fionnuala

+0

@Remou उन वीबी 6/वीबीए सूक्ष्म मतभेदों में से एक? मैं बस उस हिस्से को हटाने जा रहा हूँ। मुझे बताने के लिए धन्यवाद। – ray

संबंधित मुद्दे