这就是我正在尝试做的事情,我正在尝试在 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 连接,并从中删除了一些私人信息。