Sql server 使用excel vba创建连接

Sql server 使用excel vba创建连接,sql-server,vba,excel,Sql Server,Vba,Excel,下面是我正在尝试做的,我正在尝试在ExcelVBA中实现自动化 我要创建一个连接,如果它还没有创建,运行一个特定的SQL命令,在我的数据电子表格中抛出这个表 后记我会对它进行操纵 我想在VBA中执行此操作的原因是,当我尝试手动执行连接时,它将被删除,最终用户将不得不重置它。我希望这对最终用户来说尽可能简单。我注意到的另一件事是;除了没有给我这个表(我想我还没有告诉它)之外,它会弹出默认的表对话框 Workbooks("Tool4.xlsm").Connections.AddFromFile _

下面是我正在尝试做的,我正在尝试在ExcelVBA中实现自动化

我要创建一个连接,如果它还没有创建,运行一个特定的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,我已经从中删除了一些私人信息。

这里有一个类似的问题。您缺少的步骤是使用QueryTables.Add将数据添加到工作表中,尽管您的问题并不完全清楚。

您要问的具体问题是什么?尽管请求了一个表,代码是否仍然有效?如果没有,您是否应该发布错误消息?