2013-06-04 4 views
2

내에서 텍스트 상자의 값을 변경. 내 의도는 함수가 어떤 텍스트 상자에 텍스트를 추가하는 것입니다. 액세스 VBA - 형태와 텍스트에서 텍스트 상자 - 나는 두 개의 매개 변수를 얻을 것이다 서브를 작성하려고 해요 함수 (하는 ByRef)

Sub AppendTextBox([any textbox in my form], text As String) 

[code that appends the text parameter to the textbox] 

End Sub 

내가 특정 텍스트 상자에 텍스트를 추가하려고 아니지만, 형태에 어떤 텍스트 상자를 받고있는 텍스트를 추가 할 수있는 기능을 만들 수 있습니다.

도움 주셔서 감사합니다.

+1

textbox.Value =에서는 AppendText (textbox.Value, 텍스트) 텍스트 1은 textbox.value를 취득 AppendTextBox 사용할 때 텍스트 2 파라미터 텍스트를 얻는다. – Zephram

답변

5

그것은 생각 나는 것보다 훨씬 간단합니다

Private Sub AAA(A) 

A.Value = "Desired text" 

End Sub 

아니면 추가하려면 : 그것은이다

Private Sub AAA(A) 

A.Value = A.Value & vbnewline & "Desired text" 

End Sub 
+0

이 오류는 값을 변경하려고 시도합니다.이 개체에 값을 할당 할 수 없습니다. 무엇이 문제 일 수 있는가? – dieKoderin

+0

여하튼, 이것은 내가 레코드 - 세트 및 콜렉션에 대한 오류로 나를 도왔다. 나는 DAO 레코드 세트를 반복하면서 컬렉션 안에 내 테이블의 필드를 유지했습니다. 나중에 컬렉션을 반복 할 때 "현재 레코드 없음"이라는 이상한 오류가있었습니다. 결과 ("property") 구문 자체 대신'.Value' 속성을 사용하여 작동하도록했습니다. 고마워요. :) – Mafii

0

개정 답 :

textbox.text 값에 대한 배열을 만듭니다. 는 textbox.text 값을 통해 루프 옆에 for 루프를 사용 append

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Dim mytext() As String 
    Dim i As Integer 
    Dim endText As New System.Text.StringBuilder() 

    mytext = {TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text} 

    For i = 0 To mytext.GetUpperBound(i) 

     endText.Append(mytext(i)) 

    Next i 

    TextBox5.Text = (endText.ToString()) 

End Sub 

http://msdn.microsoft.com/en-us/library/2839d5h5.aspx

'endtext'string에 내가 여기에 해답의 나머지 남은 :

당신은 할 필요가 없습니다를 텍스트를 추가하는 함수를 만듭니다. 아래와 같이 서브를 생성하십시오. 당신이이 테스트되고이 서브에서 볼 수 있듯이 데이터가 (자신의 매개 변수를 선택) 입력이 특정 매개 변수 내에서 보장하기 위해, 체크도 만들어

If textBox1.SelectionLength = 0 Then 
     ' No selection made, return. 
     Return 

을 존재하는 경우, 볼 수 있습니다. 입력

  1. 이 실행 오류를 방지하기 위해 매개 변수와 데이터 유형

내에 존재하는 경우 확인하는 것이 중요하다.

Dim MyString As New System.Text.StringBuilder() 
MyString.Append("Hello") 
MyString.Append(" There") 

http://msdn.microsoft.com/en-us/library/aa260972(v=VS.60).aspx

사용 cocatenation :

당신이 위로 읽을

Private Sub AppendTextBox1Text() 
    ' Determine if text is selected in textBox1. 
    If textBox1.SelectionLength = 0 Then 
     ' No selection made, return. 
     Return 
    End If 
    ' Determine if the text being appended to textBox2 exceeds the MaxLength property. 
    If textBox1.SelectedText.Length + textBox2.TextLength > textBox2.MaxLength Then 
     MessageBox.Show("The text to paste in is larger than the maximum number of characters allowed") 
     ' Append the text from textBox1 into textBox2. 
    Else 
     textBox2.AppendText(textBox1.SelectedText) 
    End If 
End Sub 

나는

http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.appendtext.aspx

에게 MSDN

에서 스트링 빌더에 대한 몇 가지 세부 사항을 인용하고
Dim a As String = "abc" 
Dim d As String = "def" 
Dim z As String = a & d 
Dim w As String = a + d 

http://msdn.microsoft.com/en-us/library/te2585xw(v=VS.80).aspx

이보고 당신이 논리를 해결할 수 있는지. 당신은 다양한 textbox.text .. 즉 textbox1.text, textbox2.text, textbox3.text .. 등등 추가 할 방법.

이 코드는 코드를 작성하기에 충분해야하며, textbox.text 값을 코카로 추가하여 추가 할 변수를 만듭니다. 그렇습니다.

더 많은 도움이 필요하면 알려주세요, 그리고 도움이된다면 응답으로 답을 표시하는 것을 잊지하고 투표를하지 않는다) 내가 답을 찾았습니다

+1

코드의 다른 위치에서 텍스트 상자에 텍스트를 추가 할 수 있어야합니다. 하위를 사용하여 완료 할 수 있습니까? 내가하려는 것은 여러 텍스트를 하나의 텍스트로 "결합"하는 데 도움이되는 코드를 작성하는 것입니다. 도움을 주셔서 감사합니다. – Zephram

+1

아, 또 다른 점은 - 폼의 기존 텍스트 상자에 대한 참조를 받아 들일 수 있고, 주어진 텍스트를 동일한 텍스트 상자에 추가 할 수있는 함수가 필요합니다. 나는이 할 수있을 것입니다 경우 그래서 예를 들어, : AppendTextBox (txtBox1를, "txtbox1 텍스트") 도움을 다시 한번 감사 AppendTextBox (txtBox2, "txtbox2 텍스트") : – Zephram

+0

내가 표시 할 대답은 대답하고 투표까지했지만 여전히 문제에 대한 해결책을 얻지 못했습니다. 죄송하지만 문자열 작성자는 내 질문과 관련이 없으며 여기에 속해 있지 않습니다. 도움이 필요한 것은 코드의 아무 곳에서나 텍스트 상자에 텍스트를 입력하는 것입니다. 함수가 대답이 아니고 하위가 작동하는 경우 하위 텍스트를 사용하여 텍스트 상자에 텍스트를 보내는 방법을 보여주십시오. 여기서 중요한 문제는 특정 텍스트 상자를 추가하는 것이 아니라 텍스트 상자를 받고 텍스트가 추가되는 도구를 사용하는 것입니다. 내 질문을 다시 편집하고 시연 해 보겠습니다. – Zephram

0

안녕 Zephram 당신이 이것에 대한 해결책을 찾기 위해 관리해야? 하나가 있지만 루프를 사용하기 때문에 조금 무겁습니다. 네가 가진다면 더 잘 알려줘.

Private Function change_TextBox2(altera As String, textbox As ctl, valor As Variant) 
Dim ctl As Control 
If altera = "Popula" Then 
    For Each ctl In Me.Controls 
     With ctl 
     If (InStr(.Name, textbox)) > 0 Then 
      .Value = valor 
     End If 
     End With 
    Next ctl 
ElseIf altera = "hide" Then 
    For Each ctl In Me.Controls 
     With ctl 
     If (InStr(.Name, textbox)) > 0 Then 
      .Visible = False 
     End If 
     End With 
    Next ctl 
End If 
End Function