【问题标题】:Excel data connection to SQL dB errorExcel 数据连接到 SQL dB 错误
【发布时间】:2015-09-03 04:54:02
【问题描述】:

我在 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 文件:

但是,当我将此工作簿发送给同事以运行宏并提取数据时 - 宏能够运行到某个点,但她收到了一个错误:

我让她打开文件夹“我的数据源”,但我没有看到 odc 文件:

我的问题是:我错过了什么?或者更确切地说,为了让她的宏在她的本地机器上工作,我的同事缺少什么?

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

【问题讨论】:

  • 所以您在这里缺少的是数据连接特定于您的 PC。在您的代码中,您正在打开该连接字符串并刷新它,但该 oledb 连接字符串仍位于您的 PC 或“我的数据源”中。这取决于您的意图以及如何为服务器设置访问权限,以及您将如何调整代码以及是否会调整它。

标签: sql-server vba excel database-connection


【解决方案1】:

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

希望这会有所帮助!

【讨论】:

  • PS - 如果之后仍然无法正常工作,并且您在数据库连接中使用 Windows 身份验证,请尝试登录到您同事的计算机并查看它是否有效。如果是这样,您应该再次与您的 DBA 聊天 :)
  • 您是说我同事的数据源文件夹中的MacroExtraction 2Server.odc 吗?会做 - 会看看这是否有效。谢谢!
  • 差不多,是的。随时通知我!
  • 尝试不只是复制文件,而是通过访问 newsqlserverconnection.odc 来配置它
猜你喜欢
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多