1

以下のコードを ThisWorkbook オブジェクトに貼り付けました。ただし、ワークブックを開くたびに何もしません.VBAに入って手動でステップスルーするとすぐに機能し、コンボボックスに値が入力されますか? コードで複雑なものではなく、設定または単純なものだと確信していますが、これが失敗する理由についてはまったく考えていません。

どんな助けでも大歓迎です

Option Explicit
Public bClear As Boolean

Private Sub Open_Workbook()

With Application
    .Calculation = xlManual
    .EnableEvents = False
    .ScreenUpdating = False
End With

Dim stSQL As String, rst As ADODB.Recordset, k As Integer, vaData As Variant
Dim objConn As ADODB.Connection
Dim ConnectionString As String
ConnectionString = "Provider=sqloledb.1;data source=SQL-SERVER;Initial catalog=SQL-DB;Integrated Security = SSPI;"
Set objConn = New ADODB.Connection

stSQL = "EXEC('SELECT NAME FROM TABLE1')"

With objConn
    .CursorLocation = adUseClient
    .Open ConnectionString
    Set rst = .Execute(stSQL)
End With

With rst
    Set .ActiveConnection = Nothing
    k = .Fields.Count
    vaData = .GetRows
End With

Sheets("Menu").CB_Book.List = Application.Transpose(vaData)

objConn.Close

Set rst = Nothing
Set objConn = Nothing

bClear = True

With Application
    .Calculation = xlAutomatic
    .EnableEvents = True
    .ScreenUpdating = True
End With

End Sub
4

1 に答える 1

3

これを変更してみてください:

Private Sub Open_Workbook()

これに:

Private Sub Workbook_Open()
于 2013-10-14T16:20:54.007 に答える