将具有预配置 DSN 的 Excel 工作簿复制到其他计算机

将具有预配置 DSN 的 Excel 工作簿复制到其他计算机

我正在使用一个包含几个工作表的工作簿来处理一份 Excel 2010 报告。第一个工作表有一个字段用于输入数字,更新时它会将该数字传递给 SQL 服务器中的存储过程,然后 SQL 服务器会向每个工作表发送各种响应。

我似乎无法将此电子表格在其他计算机上使用,否则 DSN 会失败,而且在本地重新创建电子表格时,电子表格格式会变得一团糟。这是用于打印的,因此任何格式更改都是不可接受的。

所有电脑,包括我自己的都一样,装有64位Windows 7、Office 10,所有用户都通过域进行身份验证,无需本地登录。

这肯定是我做错了什么。首先,我不确定要使用什么 - 系统还是用户 DSN。然后,我不确定如何创建/安装并将该 DSN 文件传输到正确的位置。我无法访问用户的 PC,我想将电子表格、DSN 和安装说明发送给基础设施管理员,他将为任何需要的人安装它,而不是让他帮我弄清楚。

SQL 登录名是具有足够数据库访问权限的用户帐户,而不是域帐户,它是只读的,每次我在计算机上创建用户 DSN 时我都能使其工作 - 但我担心如果另一个用户登录(经理的助理或其他人),DSN 会再次失败。而且,每次我这样做时,格式都会消失。

有没有办法在公共共享上创建网络 DSN(有一个 T 驱动器映射,包括域来宾在内的每个人都至少具有读取权限)。我对其进行了写入,但当我这样做时,我无法从 Excel 中看到 DSN。这样的 DSN 是否应该进入特定的网络共享,而不是任何共享?

有什么真正直接的解决方案可以解决这个问题,适用于任何 PC 上的任何用户,适用于这种标准化环境?我想我主要关心的是复制 Excel 文件时格式是否会发生变化。到目前为止,我可以通过任何方式让它工作,只是消除了动态字段格式。所有报告的行数都是未知的且不断变化的,在工作表之间复制数据适用于大范围,但这是我的最后手段。

在我们的生产环境中,当我可以访问任何其他工作站并花整整 15 分钟来操作这个程序时,我感到很幸运。

几个小时后我就要再次工作了,我愿意尝试任何事情。

编辑:在 Excel 中,我使用“来自其他来源”,选择“来自 SQL Server”,然后输入所有连接信息,然后我能够执行 sproc“EXECUTE dbo.xxx?”,其中问号是工作订单的值。

但这只适用于我创建连接的工作站,我不知道如何在文件中保存和共享此连接信息。我想将电子表格和带有“Provider=SQLOLEDB...等”的文本文件打包,然后将两者放到另一台 PC 上,而不是让我们的管理员从一个工作站走到另一个工作站并完成此 Excel 配置过程。

此外,每次我重新创建连接时,动态字段都会交换位置,并且大小格式也会丢失。

SQL 查询结果

正确运行时的结果如下所示。只有条形码行下的记录直接从 SQL 中删除,其余记录从其他工作表中复制/计算。

相关内容