Office 2019 Access 2019

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

投稿日:2019年9月23日 更新日:

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

例えば、分割フォームで[詳細情報]ボタンをクリックして、異なるフォームを開くようにしています。ボタンが設置されたフォームが読み取り専用であれば問題はないのですが、編集可能状態である場合は[データの競合]メッセージが表示されることがあります。

ボタンが設定されたフォームで編集して、[詳細情報]ボタンをクリックして同じIDの単票フォームを開きます。単票フォームで編集後、閉じて、ボタンが設置されたフォームで保存しようとするときに表示されます。

これは、[詳細情報]ボタンのクリック時イベントで[レコードの保存]アクションを追加して実行することで回避できます。

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

データの競合

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

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

参考複数人でデータベースを共有していて、同時に同じデータを編集した場合も[データの競合]メッセージウィンドウが表示されます。レコードの保存時に表示されますので、その場合は、どちらを変更を反映するかを選択してください。

フォームの確認

分割フォーム[F_社員名簿]と単票フォーム[F_社員詳細情報]は、テーブル[T_社員]を基に作成しています。

テーブルのデザイン

そして、分割フォーム[F_社員名簿]には、[詳細情報]のコマンドボタンを作成して、単票フォーム[F_社員詳細情報]を開くようにしています。

分割フォーム[F_社員名簿]

コマンドボタンは、クリック時イベントの埋め込みマクロで同じIDの単票フォームを開くように設定しています。

クリック時イベントの埋め込みマクロ

設定は以下の記事のとおりです。[フォームを開く]アクションの引数[Where条件式]を利用して同じIDのレコードを表示するようにしています。

データシートの[ID]をクリックして単票(詳細)フォームを開く

フォームのデータシートビューの[ID]番号をクリックしたら、その[ID]の単票フォームを開く方法です。 データシートのフォーム名は[F_デー ...

続きを見る

分割フォーム[社員名簿]のデータシートは読取専用にしていますが、単票フォームは編集可能になっています。

分割フォームのプロパティシート

参考分割フォームの作成については、以下の記事で解説しています。

分割フォーム(単票フォームとデータシートを同時に表示)の作成と使い方

Accessでは、画面を2つに分け[単票フォーム]と[データシート]を同時に表示できる[分割フォーム]というのがあります。Access200 ...

続きを見る

ここでは[ドキュメントウィンドウオプション]で[タブ付きドキュメント](既定)を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

[データの競合」メッセージが出る現象

分割フォーム[社員名簿]で名(フリガナ)を編集します。ここでは、[コウジ]を[タカシ]に編集します。

データシートには、編集中の鉛筆マークが表示されています。データシートでは、まだ更新されていません。

分割フォーム[社員名簿]で名(フリガナ)を編集

この状態のまま、[詳細情報]ボタンをクリックして、フォーム[F_社員詳細情報]を開きます。[名(フリガナ)]は更新されていません。

[国/地域]のテキストボックスで編集します。

このまま、[F_社員詳細情報]を閉じます。

フォーム[F_社員詳細情報]で編集

[F_社員名簿]でレコードを保存しようとすると、[データの競合]メッセージウィンドウが表示されます。

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

ボタンをクリックした時にレコードを保存

[データの競合]メッセージは、レコードをすぐに保存すれば表示されることはありません。

分割フォーム[F_社員名簿]の[詳細情報]ボタンの埋め込みマクロを編集します。

[F_社員名簿]をデザインビューで開きます。[詳細情報]コマンドボタンのプロパティシートを開きます。

[イベント]タブの[クリック時]の[...]ボタンをクリックします。

[詳細情報]コマンドボタンのプロパティシート

埋め込みマクロのデザインは、以下のようになっています。

[フォームを開く]アクションの引数[Where条件式]に[[ID]=Forms![F_社員名簿]!ID]を入力して同じIDのレコードを表示するように設定しています。

埋め込みマクロのデザイン

この[フォームを開く]アクションの前に、レコードを保存すればいいわけです。

[新しいアクションの追加]の▼ボタンをクリックします。[レコードの保存]を探してクリックします。

[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。

[新しいアクションの追加]で[レコードの保存]を選択

以下のようになります。

[レコードの保存」を先に実行したいので、[メニューコマンドの実行]の[上へ移動]ボタンをクリックします。

[レコードの保存」を上に移動

これで、[レコードの保存]を実行した後に、フォーム[F_社員詳細情報]を開くことになります。

[閉じる]ボタンをクリックして、マクロを保存します。

埋め込みマクロのデザイン

これで、[データの競合]メッセージウィンドウは表示されなくなります。

保存する必要がない場合に、レコードの保存を実行しても問題ありません。

参考詳細情報のフォーム開くコマンドボタンを設置しているフォーム全体が[読み取り専用]になっている場合は、[レコードの保存]を実行すると以下のメッセージが表示されますので注意してください。

コマンドまたはアクション’レコードの保存’が無効です。

*データベースが読み取り専用であるか、以前のバージョンの形式から変換されていません。
*アクションの対象となっているオブジェクトで現在選択されているものがないか、アクティブビューにありません。

このデータベースで現在使用可能なコマンドまたはマクロアクションを使うようにしてください。

[コマンドまたはアクション’レコードの保存’が無効です。]のメッセージウィンドウ

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Office 2019 Access 2019

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

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.