最近我遇到了一些非常奇怪的问题,而且我无法确切地说明导致它的原因。
我有一个使用SQL Server链接表的Access前端应用程序。几天前,我部署了一个新的ACCDE版本,这引起了一些非常奇怪的问题。
在一台计算机上,我无法从功能区打开表单(某些21~ash错误无法准确记住,但这是默认的开放式错误)。经过一些调查后,我发现问题是由表单allow additions = false
上的on-open event
行引起的。然而这很奇怪,因为它一直存在。除此之外,几乎所有其他计算机,包括我的,它只是工作正常,而代码(和表单,查询等)完全相同..
当试图在该特定计算机上的accdb中打开相同的访问文件时,它似乎工作(打开正在运行时版本)。 因此,作为解决方法(暂时),我们确保此计算机将文件作为accdb打开,而其他计算机(它确实工作)将其打开为accdde。
今天它又出现了问题,但是在另一台计算机和另一个问题上。现在一个完全不同的形式不会加载它的数据(它是空的)。在本地测试它然后工作正常并在另一台计算机上再次测试它(还有一个运行时版本)它也打开了很好的数据...
奇怪的是当使用较旧的文件(一些应用程序版本)时工作正常,但当前的文件没有,至少在所有计算机上都没有。这让我相信文件已损坏,但奇怪的是,为什么它可以在其他计算机上运行?如果文件已损坏,您会说它导致所有计算机上的问题?
所以我想到的下一件事是不同的Access运行时版本。我测试了4台计算机(两台一切正常),另外两台有问题。
因此,Access文件不起作用的计算机的版本低于有效的计算机版本,这是否可能导致问题?如果是,我仍然想知道为什么旧的Access应用程序文件适用于所有计算机,但当前的那个不是..
旁注:
答案 0 :(得分:2)
嗯,简单明了,不能用x64位运行时运行x32 accDE数据库 - 它根本不起作用。
如果这些目标计算机上的运行时版本不同,那么您要卸载运行时,并下载最新版本。 Windows更新不会更新运行时。在运行时2010中,您必须下载+安装运行时,然后还要将更新下载到运行时。
使用2013年,最新的运行时下载将始终包含最新的SP更新。
尝试使用不同的运行时运行Access通常会造成灾难。在尝试在编译为x32的应用程序上使用x64位运行时的情况下根本不起作用。
在编译到accDE之前我也会检查并删除所有不需要的引用。因此,应删除对word,excel或其他任何内容的引用,并应使用后期绑定。
无论如何,您要确保所有计算机都使用相同的运行时版本,这包括位大小。因此,在所有情况下,您都希望确保并使用x32位运行时,然后确保所有计算机都运行相同的运行时版本/修订版。