microsoft jet数据库无法打开文件'...'它已由其他用户独占打开,或者您需要获得查看其数据的权限

时间:2011-09-01 19:24:56

标签: .net windows vb.net winforms ms-access

我有一个WinForms应用程序,我已经接管了它,它是使用Visual Studio 2005和VB.Net构建的。该应用程序使用Access数据库。它作为独立应用程序安装时运行正常,但应用程序的安装CD也允许网络安装,这是我目前遇到问题的地方。

要测试网络安装,我在服务器(Windows Server 2003 SP2)上创建了一个文件夹,并将Access数据库复制到此文件夹。我为此文件夹创建了一个共享,并为每个人提供了对该共享的完全权限。然后在工作站上我安装了应用程序并给出了数据库的路径,如下所示:

\\ MYSERVER \ myshare的\ MYDB.MDB

(此处的安装步骤按照安装CD上的说明进行操作)

我安装的工作站是Windows 7旗舰版。当我运行应用程序时,我在应用程序尝试读取数据库文件时收到标题中给出的错误消息。我已经确认我能够写入服务器上的共享文件夹,所以我认为这不是权限问题。此外,数据库文件根本没有使用,所以它绝对不是专门打开的。任何人都知道可能导致这种情况的原因以及我可以尝试做些什么来使其发挥作用?

更新:

我已经在全新安装Windows XP SP3的计算机上测试了工作站安装,并且能够毫无问题地访问数据库文件。因此,我得到的这个错误似乎是某种特定于Windows 7的错误。在Windows 7上是否存在Oledb驱动程序的已知问题?我的Windows 7版本,顺便说一句是32位。

4 个答案:

答案 0 :(得分:0)

可能会有很多东西,所以很难给出准确的答案。 但是,我有一个类似的问题,我去写了一篇文章,我不想在这里复制:

http://walkinghumble.wordpress.com/2009/02/20/cannot-connect-to-an-access-mdb-file-located-on-the-network-through-oledb/

如果底层问题是相同的,也许它会有所帮助(即使在我的情况下它是一个ASP.NET应用程序)。如果不是,它至少会促进过程监视器,如果你还不知道它。

答案 1 :(得分:0)

如果没有在项目的参考设置中设置“Microsoft ADO Ext 2.8 for DDL and Security”COM参考,Jet 4.0将无法打开Access文件。要检查参考的状态,请执行以下操作:项目 - >参考 - > COM。

进行此项工作的其他重要参考资料包括:

“Microsoft ADO Data Control 6.0(OLEDB)”COM参考

“Microsoft Access 14.0对象库”COM参考

答案 2 :(得分:0)

有时,当您在自己的计算机上有一个无关的MS Access进程时,Access会报告此错误。检查任务管理器的进程列表(不是应用程序)。

答案 3 :(得分:0)

尝试运行这些东西......

  1. 这些计算机是否在域上?如果是,Win 7框加入了域名?
  2. 您是否在服务器上登录时设置了权限 - 或者您是否在另一台计算机上设置了共享权限?设置服务器本身的权限。
  3. 从Win 7框中 - 验证您是否可以在2003服务器上打开共享,并更改访问文件名(就像测试一样 - 当然更改它)。
  4. 您是否在win 7盒子上安装了Access?如果是 - 请查看您是否可以访问共享并使用访问权限打开.mdb。