Access 2024

同じレコードの同時編集を防ぐ[レコードロック]の設定方法

Accessは複数のユーザーが同じデータベースを同時に利用できます。

しかし、同じレコードを複数人が編集すると、内容の上書きや編集内容の競合が発生することがあります。

そのようなトラブルを防ぐために利用するのが[レコードロック]です。

この記事では、フォームの[レコードロック]の種類や違い、ロック中の表示、さらに新規作成するフォームやクエリの既定値を設定する方法までを詳しく解説します。

フォームのレコードセレクタのロックマーク

レコードロックとは

Accessは、複数のユーザーが同じデータベースを同時に利用できるデータベースアプリケーションです。

しかし、同じレコードを複数のユーザーが編集しようとすると、データの上書きや編集内容の競合が発生することがあります。

たとえば、顧客情報を管理しているデータベースで、2人のユーザーが同じ顧客レコードを開いて編集していたとします。先に保存したユーザーの変更内容を、後から保存したユーザーの内容が上書きしてしまうことがあり、意図しないデータの更新につながる可能性があります。

レコードロックは、このような編集トラブルを防ぐための機能です。

[編集済みレコード]を設定すると、あるユーザーがレコードを編集中は、そのレコードを他のユーザーが編集できなくなります。

これにより、同じレコードの同時編集を防止できるため、データの整合性を維持しながら安全にデータベースを運用できます。

レコードのロックは、フォームやクエリのプロパティで簡単に設定できます。

フォームの[レコードロック]プロパティを設定

フォームを右クリックして、[デザインビュー]を選択して開きます。

ショートカットメニューの[デザインビュー]

[フォームセレクタ]をクリックしてフォームを選択し、[フォームデザイン]タブの[ツール]グループにある[プロパティシート]をクリックします。または、[F4]キーを押します。

[フォームセレクタ]をダブルクリックしてもプロパティシートを表示できます。

[データ]タブに切り替えると[レコードロック]があります。

フォームプロパティの[レコードロック]

[レコードロック]の選択肢は、[しない]、[すべてのレコード]、[編集済みレコード]の3つで、既定は[しない]になっています。

レコードロックの選択肢

[しない]を選択している場合

レコードがロックされていないので複数のユーザーが同時に編集できます。

2人のユーザーが同じレコードを更新しようとした場合は、2番目のユーザーが保存時に[データの競合]メッセージが表示され、[レコードの保存][クリップボードにコピー][他のユーザーによる変更を反映]の選択肢の中から選択します。

データの競合

このレコードは他のユーザーによって変更されています。[レコードの保存]を選択すると、他のユーザーによる変更を無視し、自分が行った変更を反映します。

[クリップボードにコピー]を選択すると、変更したデータはクリップボードにコピーされ、他のユーザーによる変更が反映されます。必要に応じて、クリップボードのデータを貼り付け、自分が変更したデータに戻すこともできます。

[データの競合]メッセージウィンドウ

参考[データの競合]メッセージは、同じレコードの内容を異なるフォームで編集しようとする場合も表示されることがあります。

[データの競合]メッセージが表示される場合の原因と回避方法

Accessで同じレコードの内容を異なるフォームで編集しようとすると、[データの競合]メッセージが表示されることがあります。 例えば、分割フ ...

[すべてのレコード]を選択している場合

フォーム内のすべてのレコードをロックします。

ほかのユーザーが同じデータにアクセスすると、メッセージが表示され、フォームが閉じられるまでレコードを編集できなくなる場合があります。

テーブル○○は現在ほかのユーザーまたはプロセスで使用されているので、ロックできませんでした。

[ロックできませんでした。]のメッセージウィンドウ

[編集済みレコード]を選択している場合

編集を開始したレコードのみをロックして、他のレコードは編集できます。

編集中は、レコードセレクタに鉛筆マークが表示されます。

レコードセレクタの鉛筆マーク

このときに他のユーザーが編集しようとすると、レコードセレクタにロックマークが表示され、レコードがロックされていることが示されます。

レコードセレクタのロックマーク

[クエリプロパティ]の[レコードロック]

クエリのプロパティシートにも[レコードロック]がありますが、実際に複数ユーザーによる同時編集を制御する場面では、フォームの[レコードロック]を設定することが一般的です。

クエリをデザインビューで開きます。

クエリの上部またはデザイングリッドの何もない箇所をクリックして、クエリ全体を選択します。

[クエリデザイン]タブの[表示/非表示]グループにある[プロパティシート]をクリックします。

同じく既定は[しない]になっています。

[クエリプロパティ]の[レコードロック]

[既定のレコードロック]を設定する

[Accessのオプション]ダイアログボックスから、既定のレコードロックを設定することができます。

[ファイル]タブをクリックしてBackstageビューを開き[オプション]をクリックします。

[オプション]が見つからない場合は、[その他]をクリックすると表示されます。

Backstageビューの[オプション]

[Accessのオプション]ダイアログボックスが表示されます。

[クライアントの設定]の[詳細設定]に[既定のレコードロック]の設定があります。

[クライアントの設定]の[詳細設定]にある[既定のレコードロック]

[編集済みレコード]を既定値に設定すると、新しいフォームやクエリを作成した場合の[レコードロック]プロパティは自動で[編集済みレコード]が設定されます。

個別に設定する手間を省けます。

Accessのオプションで[編集済みレコード]を選択

参考オプションで設定しても、作成済みのフォームやクエリには設定されません。

  • この記事を書いた人
  • 最新記事

-Access 2024 

Copyright © 2001-2026 初心者のためのOffice講座 All Rights Reserved.