2012-05-08 2 views
0

ControlSource 속성이 Sheet1의 셀로 설정된 다양한 텍스트 상자가있는 사용자 폼이 있습니다. CommandButton도 있습니다.ControlSource 셀이 변경 될 때 Excel UserForm 텍스트 상자가 업데이트되지 않음

CommandButton을 클릭하면 SQL Server 데이터베이스에서 데이터를 검색하고 Sheet1을 채 웁니다. 그러나 사용자 폼을 닫은 다음 다시 열 때까지 텍스트 상자가 새로 고쳐지지 않습니다. UserForm1.Repain CommandButton Click 이벤트의 마지막 줄을 시도했지만 여전히 작동하지 않습니다.

+0

그냥 추측하지만 ControlSource 속성을 재 할당 시도? 나는. 그것을 제거한 다음 다시 적용하십시오. #MightWork – markblandford

+0

그게 효과가 있지만 다른 셀에 바인딩 된 100 개 이상의 텍스트 상자가 있고 코드에서 모두 업데이트하지 않아도됩니다. – NiMuSi

답변

1

OK, 내 이전 코멘트 구축, 양식에 각 텍스트 상자의 ControlSource의 재로드를 자동화하기 위해이 같은 것을 할 수있는 :

Dim ctl As Control 

For Each ctl In Me.Controls 
    If TypeOf ctl Is MSForms.TextBox Then 
     ctl.ControlSource = ctl.ControlSource 
    End If 
Next ctl 

Set ctl = Nothing 
+0

좋습니다, 잘 작동합니다. – NiMuSi

0

나는 꽤 이해하지 못했다 ... 문제를 재현하려했지만 probs가 없다. 다음 코드를 사용했습니다.

Private Sub CommandBut_Click() 
Dim cnn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim sqls As String 
Dim myRec As Integer 
Set rs = New ADODB.Recordset 
Set cnn = New ADODB.Connection 

cnn.ConnectionString = "UID=***;PWD=***;DSN=***;" 

sqls = "select data1, data2 from someRandomTable where data1 = '" & textbox1 & '" and data2 = '" & textbox2 & '" 
rs.Open sqls, cnn.ConnectionString, adOpenStatic 

Dim z As Integer 
z = 1 
If rs.RecordCount > 0 Then 
    rs.MoveFirst 

    Do While Not rs.EOF 
    Cells(z, 1).Value = rs.Fields(0).Value 
      Cells(z, 2).Value = rs.Fields(1).Value 
       z = z + 1 
     End With 
    rs.MoveNext 
    Loop 
    Else 
    MsgBox "nothing found", vbCritical 
End If 
Set rs = Nothing 
Set cnn = Nothing 
End Sub 

TextBox1,2의 ControlSourceProperty를 sheet1! A1 및 B1로 설정했습니다.

CommandBut_Click은 텍스트 상자의 값을 읽은 다음 SQL로 덮어 쓰고 textbox1 및 2 값을 업데이트합니다.

+0

내 코드가 데이터를 올바르게 워크 시트에 반환하고 있습니다. 내가 가지고있는 문제는 사용자 정의 폼에 사용자에게 표시하는 것입니다. 이것은 디스플레이에 사용하는 코드입니다. txtSurname.ControlSource = "Sheet1! B2" txtTitle.ControlSource = "Sheet1! C2" txtFirstForename.ControlSource = "Sheet1! D2" txtOtherForenames.ControlSource = "Sheet1! E2" 등 (100 개가 넘는 textBox 용) 디자인 타임에 ControlSource 속성을 설정하면이 필요성이 없어지지만 제대로 작동하지 않는 것 같습니다. – NiMuSi

관련 문제