以下のコードを 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