ACCESS フォームコントロールソースの計算結果やDLookUpをテーブルに反映させる

スポンサーリンク

ACCESS フォームの計算やDLookUpをテーブルに反映させる

ACCESS(アクセス)では、フォームで「コントロールソース」式ビルダーを使用すれば、クエリのように計算やDLookUpが使用できます。

コントロールソース
式ビルダー

一般的にフォームでは表示できても、テーブルには反映されません。

テーブルに反映されないので、クエリを作成する場合が多いと思います。
通常、テーブルには、計算やDLookUpなどは必要ありません…

しかし、一つの項目だったり、クエリを作成するほどでもない場合、特殊なケースや応用なども考えられます。

簡単なマクロを使用すれば、テーブルに反映させることができます。

1、マクロボタン作成でもいいのですが、ここでは自動化を考え、イベントのタイミングを選択します。

フォームの「デザインビュー」からプロパティシートで操作します。
(レイアウトビューでも操作可能になります)

イベント

※イベントのタイミングが多数あるので選択可能ですが、一部動作しないものがあります。

2、簡単なマクロを作成します。

イベントプロジャー]を選択、もしくは、 ・・・ からコードビルダーを選択します。

コードビルダー

VBAの画面が出るので、ソースを記述します。

例】イベント「フォーカス取得時」に設定した場合「フォームフィールド名_Enter()」

Microsoft Visual Basic for Applications

Me![保存するテーブルのフィールド名]=Me![フォームの計算やDLookUpのフィールド名]

を記述します。

記述例】
イベント:フォーカス取得時
テーブルのフィールド名:「総額」
フォームのフィールド名:「総額form」(テキストボックスの名前です)

Private Sub 総額form_Enter()

Me![総額] = Me![総額form]

End Sub

注意点

[保存するテーブルのフィールド名]と[フォームの計算やDLookUpのフィールド名]は、
異なる名前にしてください。
※標題(ラベル)ではありません、ボックスの名前です。

名前変更方法 ↓

名前の変更

※「フォームのフィールド名(ボックス名)+form」に変更するだけでも大丈夫です。

アドバイス

イベントのタイミングが多数あるので、必要なタイミングで設定することが出来ます。
「ダーティー時」や「変更時」では、なぜかうまく動作しませんでした…

タイトルとURLをコピーしました