私は信じられないほどシンプルなAccessデータベースを持っています。これには1つのパススルークエリがあり、それだけです(テーブルはありません)。クエリは、SQL Serverデータベースに対してストアドプロシージャを実行するだけで、結果を表示します。 Accessデータベースに保存されるデータはありません。ストアドプロシージャの結果を表示するためにのみ使用されます。
データベースをネットワーク共有に配置しました。 Accessデータベースを開いている場合、同僚はデータベースを開いてデータを表示できません。 「ファイルをロックできませんでした」というエラーが表示されます。
複数のユーザーがAccessファイルを開いてクエリ結果を表示できるようにするにはどうすればよいですか?
ネットワークフォルダーを使用してデータベースを共有する
データベースを共有する最も簡単な方法は、データベースを共有ネットワークフォルダーに置くことです。これは最も簡単な方法ですが、最も限定的な方法でもあります。この方法を検討する前に、次のすべての条件を満たす必要があります。
同時に数人がデータベースを使用することが期待されています。
データベースにメモ型フィールドが存在しないか、存在する場合、別のユーザーが同時に更新することはありません。
ユーザーはデータベースの設計をカスタマイズする必要はありません。
注この方法は、データベースを共有する他の方法よりも安全性が低くなります。これは、各ユーザーがデータベースファイルの完全なコピーを保持し、不正アクセスのリスクが高まるためです。
ネットワークフォルダーを使用してデータベースを共有するには
まだ使用できない場合は、共有ネットワークフォルダを設定します。
この手順のヘルプについては、データベースの共有に使用するコンピューターのオペレーティングシステムのヘルプシステムを参照してください。共有フォルダーがネットワークサーバー上にある場合は、ネットワーク管理者の支援が必要になることがあります。
すべてのユーザーのコンピューターで、Accessが共有モードで開くように設定されていることを確認します。これはデフォルト設定ですが、確認する必要があります。ユーザーが排他モードでデータベースを開いた場合、他のユーザーによるデータの使用が妨げられます。各コンピューターで次の手順を実行します。
Accessを起動します。
Microsoft OfficeボタンOfficeボタンの画像をクリックし、[アクセスオプション]をクリックします。
[アクセスオプション]ダイアログボックスの左側のウィンドウで、[詳細設定]をクリックします。
[アクセスオプション]ダイアログボックスの右側のウィンドウの[詳細設定]セクションの[既定のオープンモード]で、[共有]を選択します。
[OK]をクリックして、Accessを終了します。
データベースファイルを共有フォルダにコピーします。ファイルをコピーした後、データベースファイルへの読み取り/書き込みアクセスを許可するようにファイル属性が設定されていることを確認してください。ユーザーがデータベースを使用するには、読み取り/書き込みアクセス権が必要です。
各ユーザーのコンピューターで、データベースファイルへのショートカットを作成します。
ショートカットのTargetプロパティにデータベースファイルへのパスを入力するときは、マップされたドライブ文字の代わりにUNCアドレスを使用します。たとえば、F:\ sample.accdbの代わりに、\ computername\shared.accdbを使用します。
注このステップは、ユーザー自身が実行することもできます。
誰かがこの質問をしているがOLEDBを使用している場合、「排他」モードが存在するため、「共有モード」は常にオンのようです。
Exclusiveたとえば、アプリケーションがデータベースパスワードをリセットできるようにする場合に、データベースへの排他的アクセスを取得するために使用されます。
プロバイダー= Microsoft.Jet.OLEDB.4.0;データソース= C:\ mydatabase.mdb; Mode = Share Exclusive; User Id = admin; Password =;
https://www.connectionstrings.com/access/
また、このスレッドには、「モード」の使用に関するいくつかの興味深い情報があります https://social.msdn.Microsoft.com/Forums/en-US/c90b1166-e5ee-43ff-a49b-9efe9f416475/opening-an-ms- access-database-in-exclusive-mode-using-adonet?forum = adodotnetdataproviders