Google検索

Office2019 Access2019

[データの競合]メッセージが表示される

投稿日:

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

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

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

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

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

データの競合

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

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

フォームの確認

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

テーブルのデザイン

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

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

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

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

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

データシートの【ID】をクリックして単票フォームを開く

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

続きを見る

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

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

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

分割フォームの作成と使い方(データシートの標題の変更方法も)

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

続きを見る

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以下のようになります。

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

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

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

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

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

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

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

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

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

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

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

Profile

執筆者/はま

おすすめ記事と広告

-Office2019 Access2019

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

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