2016-08-26 4 views
0

私はメインフォームとサブフォームをそれぞれテーブルとクエリにリンクしています。メインフォームの現在のレコードに基づいて結果リストを絞り込みますフォームはマスターと子フィールドでリンクされているため、私の問題は、ユーザーがサブフォーム内のデータを編集して、編集したすべてのレコードに満足すれば保存ボタンを押すようにすることです。現在、サブフォームの次のレコードに切り替えるときに関連するテーブルに自動的に保存されます。これは理想的ではありません。ユーザーが以前のデータに戻ったり、変更内容に満足していない場合は保存したりできないようにしたいと考えています。サブフォームへのアクセス、次のレコードを選択するときにリンクテーブルへの自動保存を停止

https://drive.google.com/file/d/0B5BV2rpgshPJSG1jS0lzUVNnWlU/view?usp=sharing

+1

残念ながら、これはMS Accessフォームのデフォルト機能です。もう1つの方法は、バインドされていないフォームを使用し、レコードセットからフォームフィールドに値を取り込み、保存ボタン更新テーブルに保存することです。 VBAコードのかなりの面倒なプロセス。 – Parfait

答えて

0

パフェが書いたように、これはバウンドフォームがどのように働くかです。別のレコードに移動すると、編集されたレコードが保存されますが、例外はありません。

連続したサブフォーム(=複数のレコードを表示)では、それをアンバウンドにすることはできません - バインドされていないフォームは定義によって単一フォームです。

唯一の方法は、元のテーブルと同じ構造のローカル一時テーブルにレコードをコピーし、サブフォームを一時テーブルにバインドすることです。変更を保存するということは、一時データを元のテーブルにコピーし直すことです(しかし、他のユーザーからの編集の衝突については注意してください)。変更を破棄するのは単に一時テーブルをクリアするだけです。

またはそれ以上:ユーザーに操作方法を説明し、使い慣れたものになります。

関連する問題