Excel数据连接到SQL dB错误

时间:2015-09-03 04:54:02

标签: sql-server excel vba excel-vba database-connection

我在Excel工作簿中制作了一个宏,以根据用户输入从SQL数据库中提取数据的子集。

宏提示用户输入参数,并将该参数插入到配置为Excel数据连接的现成存储过程中 - 请参阅下面的我的vba:

  Sub RefreshDBQuery()

  Dim Val As Integer

  Application.ScreenUpdating = False

  Worksheets("Adjustable CF").Select
  Val = InputBox("Enter valid 4 digit number", , 1907)

  Sheets("TestData").Visible = True

  Worksheets("TestData").Select
  Worksheets("TestData").Range("A1").Select

  ActiveCell.Value = Val

  With ActiveWorkbook.Connections("MacroExtraction 2Server").OLEDBConnection

    .CommandText = "EXEC dbo.prV_FlowExtract '" &      Range("A1").Value & "'"

  End With

  ActiveWorkbook.Connections("MacroExtraction 2Server").Refresh

  Sheets("TestData").Visible = False

  End Sub

当我运行它时 - 它工作正常,另外,因为它正在修改现有数据连接(我之前配置的那个),我注意到在我的文档下名为“我的数据源”的文件夹中的odc文件:

snapshot of the odc file residing locally on my desktop Documents folder

但是,当我将此工作簿发送给同事来运行宏并提取数据时 - 宏能够运行到某一点,并且她收到错误: SQL state 42000, Server error 4060

我让她打开文件夹“My Data Sources”,我没有看到odc文件: no 'MacroExtraction 2Server' odc

我的问题是:我错过了什么?或者更确切地说,为了让她的宏在本地机器上运行,我的同事失踪了什么?

我和dB管理员核实过,她说她有访问服务器所需的权限,这就是为什么我选择缺乏odc作为我担心的原因。我应该复制我的odc文件并将其发送给她复制到她的Data Sources文件夹中吗?我应该重写宏并在本地计算机上重新设置数据连接吗?任何有评论经验的人都会非常感激!谢谢!

1 个答案:

答案 0 :(得分:0)

单独的宏不包含所有必要的信息(服务器名称,例如?)。尝试在同事的我的数据源位置运行“NewSQLServerConnection.odc”,完成必要的数据,确保连接名称与宏中的相同,然后宏应该可以工作。

希望这有帮助!