0

コントロールソース プロパティがシート 1 のセルに設定されているさまざまなテキスト ボックスを持つユーザー フォームがあります。コマンドボタンもあります。

CommandButton をクリックすると、SQL Server データベースからデータが取得され、Sheet1 に入力されます。ただし、ユーザーフォームを閉じて再度開かない限り、テキストボックスは更新されません。CommandButton Click イベントの最後の行として UserForm1.Repain を試しましたが、まだ機能していません。

4

2 に答える 2

1

ControlSourceOK、私の前のコメントに基づいて、フォームの各テキストボックスの再読み込みを自動化するために、次のようなことができます:

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
于 2012-05-09T17:23:56.350 に答える
0

私は完全に理解していません...あなたの問題を再現しようとしましたが、私は問題を抱えていません。次のコードを使用しました

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の値を更新します。

于 2012-05-08T13:02:37.610 に答える