вот что я пытаюсь сделать, и я пытаюсь автоматизировать все это в excel vba.Создание соединения с помощью excel-vba
Я свяжусь, чтобы создать соединение, если оно еще не было создано, запустить определенную команду SQL, выбросить таблицу в таблицу «Данные».
Послесловие я сделаю манипуляции на нем.
Причина, по которой я хочу сделать это в VBA, заключается в том, что, когда я пытался просто вручную выполнить соединение, он будет удален, и конечный пользователь должен будет сбросить его. Я хочу, чтобы это было как можно проще для конечного пользователя. Другая вещь, которую я замечаю, это то, что; кроме того, что я не дал мне таблицу [я не думаю, что я еще это сказал], это то, что она появляется в диалоговом окне таблицы по умолчанию.
Workbooks("Tool4.xlsm").Connections.AddFromFile _
"C:\Users\Cutting_This_Out.odc" _
, True, False
With ActiveWorkbook.Connections("255.255.255.0").OLEDBConnection
.BackgroundQuery = False
.CommandType = xlCmdSql
.Connection = _
"OLEDB;Provider=SQLOLEDB.1;Integrated " _
& "Security=SSPI;Persist Security Info=True;Data Source=255.255.255.0; " _
& "Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation " _
& "ID=TRIMMED-PC;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=COSTrpt"
.CommandText = _
"SELECT [PRVDR_NUM],[hha2011cbsa_ms].CBSA,[CBSA_Name],[VISITS_IN],[ADJUSTED_REIMB] FROM [COSTrpt].[dbo].[hha2011cbsa_ms] INNER JOIN wage_index ON wage_index.CBSA = hha2011cbsa_ms.CBSA"
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
ActiveWorkbook.Connections("255.255.255.0").Refresh
End Sub
Другая информация; Я подключаюсь к MS-SQL-Server, и я обрезал некоторые личные данные.
Каков конкретный вопрос, который вы задаете? Работает ли код, несмотря на запрос таблицы? Если нет, есть ли сообщение об ошибке, которое вы должны отправить? –