编译访问(mde)文件的链接表问题

时间:2009-04-27 16:42:52

标签: sql-server vba ms-access

我有一个旧的已编译的Access Application mde文件。此应用程序已将表链接到网络共享文件夹。我尝试使用主数据库上的升迁向导升级主数据库,一切顺利。然后,当应用程序启动时,它会显示错误消息

  

Microsoft jet数据库引擎找不到输入表或查询表

我检查了共享的mdb文件,它有确切的表名和所有内容。 然后我打电话给开发此应用程序的人。他说我必须重写应用程序以不使用Jet引擎...

Jet Engine与链接表有什么关系?我是否真的必须重写整个应用程序才能使用ADO?

2 个答案:

答案 0 :(得分:2)

很多问题:

  1. 你有源MDB文件吗?如果链接表未正确连接,我无法回想起创建MDE是否失败。无论如何,如果您最终需要更改应用程序,则需要源MDB文件。

  2. 您报告的错误消息应提供缺失表的名称。

  3. 您知道何时报告错误?可以有任意数量的地方只需将链接到Jet MDB后端的表替换为服务器的ODBC链接就无法解决问题。例如,如果代码中有任何已保存的查询或SQL绕过链接表并使用直接连接字符串,则可能会产生类似于您看到的错误。

  4. 关于开发人员的回答“我必须重写应用程序以不使用Jet引擎......”要么你误解了他说的话,要么你的开发人员完全无能。或者两者兼而有之,我猜。 Jet与ODBC链接表一起运行良好,如果你使用的是MDB前端,则不可能完全消除Jet,因为MDB是Jet数据文件。消除Jet的愿望主要来自那些无法学习如何正确使用它的人。

  5. 听起来好像你得到了一个未经处理的错误,但没有足够的信息来说明它是什么产生的。您需要实际的MDB来对其进行故障排除,因为代码不在MDE中显示,因此无法确定问题的实际来源。如果您的开发人员不会向您提供MDB,那么您需要检查开发应用程序的合同 - 如果您同意让他控制源代码,那么您基本上是他的怜悯,应该解雇任何签名的人在那。对于它的价值,当我向客户提供MDE时,他们也获得了完整的MDB。他们通常不会对它做任何事情,但如果我不再可以进行进一步的开发工作,他们就会得到他们可以给任何人想要的源代码。

    最后,我认为,即使你的应用程序正常工作,也不太可能只是在性能或稳定性方面提供大量提升。确实,90%或更多的大型应用程序通常无需更改即可正常工作,但其他10%的应用程序可能会出现问题。通常,您需要在服务器端移动某些操作以获得服务器后端提供的效率。这意味着您的前端应用程序需要重新设计,以便在升级的后端更好地工作。这种情况的真实程度因应用程序而异,但很少有绝对一切无法修改。

答案 1 :(得分:0)

您确实更改了Access数据库版本? 您的mdb可能与旧版本的Jet驱动程序链接,并且这些驱动程序无法连接到较新的mdb版本。