Microsoft Access 掲示板

入力値を元に別のフィールドに値を格納する

6 コメント
views
4 フォロー

あるフィールドAに数値を入力します
その数値にランダムで5~10を加算した数値をフィールドBに格納したいです
VBAで、フィールドAに入力(あるいは変更)があったときにフィールドBに計算結果を格納する方法が一般的ですか?

すいちゃん
作成: 2021/04/12 (月) 02:10:56
通報 ...
1

目的次第だと思います。

入力した直後に結果を格納したいのなら、テーブルと連結した入力フォームを作成して、フィールドAと連結したテキストボックスの更新後処理のイベントでフィールドBに計算結果を格納することになります。

2
すいちゃん 2021/04/12 (月) 17:32:00 58219@5a5ac

フィールドA→テキストボックス→フィールドBとするのですか?
フィールドA→フィールドBではなにか不具合がありますか?

3

テーブルを開いてそこで直接更新しても、テーブルやテーブルのフィールドではイベントが発生しないので、自動でフィールドBに計算結果を代入することはできません。

フィールドAを更新したときに自動でフィールドBも更新するには、テーブルと連結した入力フォームを作成する必要があります。
フォーム上では、フィールドと連結したテキストボックスで入力することになります。
テキストボックスの更新後処理イベントを使うことになります。

以上の説明で理解いただけたでしょうか。
不明な点があれば、具体的に質問してください。

4
hiroton 2021/04/13 (火) 11:33:35 9fa24@f966d

テーブル イベントにデータ マクロを追加する

比較的新しい機能で、テーブルに直接機能を追加することはできますね。hirotonは使ったことありません。情報の少ない仕組みはそれだけで生産性が落ちるので

フォームを介しての実装はテンプレみたいなものなのでしょう。目的自体は単純なモノのように見えるので「フィールドA→フィールドB」で実装できているものがあるなら「不具合」はないと思いますよ

5
すいちゃん 2021/04/14 (水) 03:47:27 2a30e@bd095

ちょっと調べてみたのですが、集計フィールドというので、フォームAにランダムで加算する、とういうのは運用的にはだめなのでしょうか?

6

集計フィールドで使える関数には制限があります。
「その数値にランダムで5~10を加算した数値」はどのように取得しているのですか。
Rnd関数を使っているのなら、集計フィールドでは使えません。
他にもDate関数とかNow関数のようにその時々で異なる値を返す関数は使用不可です。
「ランダムな数値」ということはその時々で異なる値を返すことになるので集計フィールドでは無理だと思います。