Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Excel数据连接到SQL dB错误_Sql Server_Vba_Excel_Database Connection - Fatal编程技术网

Sql server Excel数据连接到SQL dB错误

Sql server Excel数据连接到SQL dB错误,sql-server,vba,excel,database-connection,Sql Server,Vba,Excel,Database Connection,我在Excel工作簿中创建了一个宏,用于根据用户输入从SQL数据库中提取数据子集 宏会提示用户输入参数,并将该参数插入配置为Excel数据连接的现成存储过程中-有关我的vba,请参见下文: Sub RefreshDBQuery() Dim Val As Integer Application.ScreenUpdating = False Worksheets("Adjustable CF").Select Val = InputBox("Enter valid 4 di

我在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文件并发送给她,以便复制到她的数据源文件夹中吗?我应该重写宏并在她的本地机器上重新设置数据连接吗?任何有评论经验的人都将不胜感激!谢谢

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


希望这有帮助

因此,您在这里缺少的是数据连接特定于您的电脑。在代码中,您正在打开该连接字符串并刷新它,但oledb连接字符串仍位于您的电脑或“我的数据源”中。这取决于您的意图以及为服务器设置访问权限的方式,以及您将如何调整代码以及是否要调整代码。PS-如果在这之后代码仍然不起作用,并且您在数据库连接中使用windows身份验证,请尝试登录到同事的计算机,看看它是否起作用。如果是这样,您应该再次与DBA聊天:)您是指我同事的data sources文件夹中的
MacroExtraction 2Server.odc
?会的-会看看这是否有效。谢谢差不多,是的。随时通知我!尝试不只是复制文件,而是通过访问newsqlserverconnection.odc对其进行配置