2012-02-03 3 views
2

私は別のアプリケーションで使用可能なMS Accessファイルを接続しようとするウィンドウアプリケーションを持っています。 そのアプリケーションを停止すると、MS Accessファイルに接続できます。 次のようにそれ以外の場合はエラーが発生します。同じMS Acessファイルを使用している別のアプリケーションでMS Accessに接続する

 

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "AccessDb" returned message "Cannot start your application.
The workgroup information file is missing or opened exclusively by another user.

は、私は読み取り専用モードで接続を開くことができる方法はあります。 私はそのファイルからデータを読みとるだけです。

ありがとうございました。接続文字列は、この接続文字列は、そのアプリケーションによって使用されるべき

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyFolder\MyDb.mdb;Persist Security Info=False;Jet OLEDB:Database Password=My_Password;Mode= Share Deny None 

のように見えるように、DBをロックしているこのアプリケーションの接続文字列に「モード=シェアはどれも拒否しない」を追加すること

+1

私はこの問題に一度直面し、回避する方法がないことがわかりました。 問題は、開いているアプリケーションがAccessファイルに排他的にアクセスしている可能性があります。 このリンクを参照することができます:http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/31f75deb-ed3f-40e8-8084-ce51343b05cf – Thinhbk

答えて

5

てみてください現在排他モードでDBを開いています。

+0

別の例外:Microsoft Office Accessデータベースエンジンファイル '\\ 172.16.24.37 \ ACServer \ ACCESS.mdb'を開いたり書き込んだりすることはできません。すでに他のユーザーによって排他的に開かれているか、そのデータの表示と書き込みの許可が必要です。私の接続文字列は

+2

あなたの接続文字列は問題ありません。問題はそのファイルが別のアプリケーションによって排他モードで既に開かれていることです。この問題を引き起こすこの他のアプリケーションはこの他のアプリケーションですか?それは修正する必要があります。この他のアプリケーションが排他モードでデータベースを開く場合は、DBを開くことはできません。何もできません。他のアプリケーションを変更して、排他モードではなく共有モードでDBを開く必要があります。 – Max

+0

'Mode = Share Deny None'部分は必要ありません。ちょうど 'Jet OLEDB:データベースパスワード= My_Password'で十分です –

0

私は同様の問題に直面していましたが、今解決しました。 uは Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverName\shareName\folder\myDatabase.mdb;User Id=admin;Password=;

を提供している場合があります接続文字列で は、パスワードを提供し、代わりに高度な共有上のファイルをクリックを共有しながら、管理者ユーザーを削除し、完全に制御して皆を追加しないでください。 あなたのアプリケーションを実行してください

関連する問題