我需要更新连接到SQL Server数据库的MS Access应用程序。我将应用程序和SQL数据库复制到我的开发计算机,打开Access并链接表(其中100多个)。我可以通过Access查看数据,但所有表关系都丢失了,表单给了我3146个连接错误。
如何整理数据以便我可以向应用添加功能(最终将应用程序提供给客户端以重新连接原始SQL Server)?
并发症:15年来我没有使用过Access,所以我对它有点生疏......
答案 0 :(得分:0)
这些关系现在由SQL服务器处理。它们与Access,网站,VB6或一些只连接到SQL服务器的.net程序有ZERO。 .net程序,VB6程序或使用MS Access开发的软件与如何使用给定的数据库系统(在本例中为SQL服务器)设置关系无关。
因此,网站软件,或.net程序,甚至MS Access都不会更改,或控制您在SQL Server上设置的关系。如果是这种情况,那么.net,网站,VB6和MS等程序在同一时间使用SQL服务器访问哪些程序会控制关系呢?
因此,使用客户端软件控制或设置SQL服务器使用的关系是不可能或不切实际的,从那时起它就是控制它的客户端软件,然后连接到SQL服务器的每个程序都可能不同!! ! (因此,没有强制关系是可能的,因为所有程序对于关系应该如何都有不同的想法!!!)。
SQL服务器因此忽略了Access中的任何关系设置,因为它现在是管理数据库的SQL服务器 - 而不是Access。
Access只是开发人员的工具,如VB6,或者说是vb.net - 这些程序可以自由连接到SQL服务器。由于许多不同的程序能够连接到SQL服务器,因此连接的程序不是控制关系的程序 - 所有这些都必须在SQL服务器上完成和设置。
Access仍允许您使用关系图。因此,如果需要,您仍然可以在该窗口中绘制关系,但是您注意到“强制执行”关系的选项现在是灰色的 - 它们无法使用。所以它仍然可以是一个文档工具,或者是制作可爱图表的手段,但同样,它也不会影响SQL服务器的运行。
至于你的错误?好吧,在您尝试打开任何表单之前,您需要单击链接表,然后查看它是否有效。如果您不确定表链接是否有效且正常工作,则无需尝试代码,表单和报告。只有在您可以点击并打开链接表时,您才应该关注尝试使用表单,代码,报告等。
我建议您使用链接表管理器,并重新链接表。现在,我想你可以删除链接,但我不建议首先尝试,因为表名可能会在它们前面有一个dbo前缀,这将导致所有的表名都被更改,并且将破坏应用程序中的所有内容。所以真的尝试刷新方法,因为如果你有很多表,那么你必须重新命名它们,如果你删除链接并重新链接(所以尽量避免我建议删除表链接并重新创建它们 - 它会节省很多工作)。
所以第一步: 确保表链接有效。 (不要尝试代码,不要尝试表单,不要尝试报告)。
您需要确保简单的链接表有效,并且您只需打开这些链接表即可。跳过此步骤意味着您尝试的其他所有内容都是愚蠢而且浪费时间。
因此,单击链接表,然后查看是否可以打开+查看链接表数据。
如果没有?
然后我将启动链接表管理器,并选择所有链接表,然后强制重新刷新。 (确保单击链接表管理器左下角的[x]“始终提示输入新位置”框。