Microsoft Access 掲示板

フォームからLookupテーブルのレコードを追加し、それを同じフォーム内の複数コントロールに即時反映させる / 3

6 コメント
views
4 フォロー
3
Accessって敷居が高い 2020/05/02 (土) 10:07:26 e08ac@b63e9

アドバイスありがとうございます。
初心者なので、間違った語句の使い方等はご容赦を。

ご指摘のとおり
 テーブル: メインテーブル、所属テーブル、役職テーブル
 フォーム:メインフォーム、所属追加フォーム、役職追加フォーム
の構成です。
メインフォーム中の、所属と役職を選択するコンボボックスがそれぞれ5個あり、それぞれ所属テーブルと役職テーブルを参照する形(Lookup)にしてあります。
メインフォームから、所属追加フォームと役職追加フォームを呼び出して、所属や役職を追加し、その追加修正をメインフォームの合計10個の所属・役職コンボボックスに即時かつ自動的に反映させたいのです。

所属追加フォームや役職追加フォームには、「レコードセーブボタン」、「フォームを閉じるボタン」を配してあります。アドバイス頂いたように、この2つのボタンのon-clickイベントマクロにRequery(コントロールなし)で追加するのですが、全くメインフォームには反映されない、あるいは1つのコンボボックスだけ反映されるなど、不思議な挙動をします。
この他にAfter UpdateイベントマクロにRequery(このトロールなし)を加えても同じ。追加フォーム上に「Requeryボタン」を作ってon-clickイベントでRequeryをさせても、全く同じ挙動。VBAコードとしてon-clikイベントでMe.Requeryなども試しましたが反映されず。

唯一、所属追加フォームや役職追加フォームの変更を反映させることができる動作は
(1)メインフォームにおいて、Shift-F9
(2)メインフォームにおいてRequeryを行う。

この他、Relationshipで連鎖更新もONにしてあるのですが、Joinタイプを変えるとか、私の思いつく範囲でいろいろ試してみたのですが、私の知識・経験では(1)(2)でしか実現できません。

しかし、この(1)(2)を行うと、現在入力しているレコードから、一番先頭のレコードに飛びます。User Unfriendlyも甚だしいので、なんとか、Macroを使ってCurrentRecord番号をゲットして、Requery後にGoToRecordで元のレコードに飛ばそうと思っているのですが、マクロでCurrentRecordのゲットの書式が分かりません。。。。
マクロだからeasyかと思いましたが、VBAとは違って、[TempVars]![MyVal]のフォーマットだし、かといってMacroの書式について初心者向けの資料もないし。。。。

どうしてこんな簡単なことが、ここまで難しいのか。。。。
やっぱりAccessは使うべきではないなと-と感じています。FileMakerにしておけば良かった。でも関係者にFileMakerを買わせる負担を掛ける訳にもいかず。。。。
Accessのフォーラムにこんなこと書くのは失礼かもしれませんが、Accessって基本思想自体が間違っていると感じます。

通報 ...