自动将Access表重新链接到SQL Server数据库



我有一个Access程序作为FE,一个SQL Server作为后端数据库。当我更新我的Access程序时,我制作了一个ACCDE文件并将其发送给我的客户。

不幸的是,我应该远程到我的客户端PC,并通过制作DSN文件手动将新更新的Access文件重新链接到SQL Server。这是非常令人沮丧和耗时的。有人向我提供了以下用于重新链接表的代码,但它适用于Access数据库。

现在我想自动化这个过程。我希望任何用户都可以通过按下启动屏幕中的按钮来重新链接SQL Server中新更新的数据库访问权限。

在文章中的代码中,如何指定SQL Server数据库在服务器中的位置?

我可以将连接路径放在BE数据库(在任何不同的公司(的表中并保存,然后在代码中调用它。但我不知道该如何使用,在哪里使用。

代码

好吧,如果你是他们同一网络的一部分?还是在同一个网络上?

然后你拿着你的accDB。使用链接表管理器,并链接到生产";活的";sql server实例。此重新链接过程不需要任何代码。

在所有情况下——我重复一遍,在所有情况中,当你链接时,你想使用FILE dsn。这是因为访问自动将FILE DSN转换为我们所说的DSN-LESS连接。一旦你链接,你就可以创建accDE,现在你可以自由地将这个前端accDE部署到该网络上的任何和所有计算机上。在访问中使用FILE DSN时,没有客户端DSN设置或配置。

现在,有一种情况是,当你不在网站上,你不能预先链接accDB(然后你会变成一个accDE-对!!(。

即使我不在现场,我也经常有一个到该客户网站的VPN。因此,我可以再次使用链接表管理来重新链接表,并且需要ZERO VBA代码。一旦链接到sql server(使用Access UI+链接表管理器(,我就可以自由创建accDE了,而且accDE现在可以分发到该网络上的任何工作站,不需要DSN或任何类型的配置!

然而,在许多情况下,你很可能在场外,不能成为他们网络的一部分。在这种情况下,是的,您确实需要+希望在启动时重新链接一些代码。

因为你要提供一个全新的前端——一个会重写现有前端的前端?然后我所做的是采用一个标准,即每台计算机上的FE也有一个简单的link.txt文件放在同一位置。现在,在启动时,读取该文本文件并检查链接表以查看它们是否相同是一件简单的事情——如果它们不相同,那么我们将根据保存在该文本文件中的链接信息运行您的示例重新链接代码。因此,您可以自由更新并提供下一个伟大的新版本的软件,并且在启动时,我们读取该简单的文本文件以获取服务器信息。如果该信息与链接表不匹配(我只是获取第一个链接表(,那么我们只需使用该文本文件中的信息运行VBA重新链接例程。在某些情况下,我将并且已经在FE中使用了一个带有一行的简单表,因此您可以在部署之前以这种方式设置/更改服务器信息。因此,在FE中有一个简单的单行表来代替这个简单的文本文件,它保存这些信息。这当然需要";记住";用客户的sql服务器信息更改/更新该单行表记录。同样,启动时的过程基本相同——您检查该信息,如果第一个链接表不同,则在启动时运行重新链接的VBA代码。因此,重新链接的代码将只运行一次。

那么,如果你在现场,在同一个网络上?然后,您不需要任何VBA重新链接代码,只需使用内置的链接表管理器并重新链接表即可。只要您使用FILE dsn,那么就不需要或将不需要工作站配置,因为默认情况下,自动Access会将FILE dsn转换为无dsn,而无需任何VBA代码。一旦以这种方式重新链接,请创建accDE,然后将其分发到该网络上的任何和所有工作站。

实际上,如果您要为该网站提供新的更新的accDE,您只需要一些VBA重新链接代码,并且在创建该accDE之前,您不能在该网络上或作为该网络的一部分来重新链接表。

最新更新