MS Access ルックアップフィールド
MS Access ルックアップフィールド
前回、パラメータクエリを調べた。
クエリのパラメータ部分に値を投入するのは、ダイアログボックスからでしかできないらしい。VBAマクロであれば、Parameterオブジェクトを使ってやればできなくもない。クエリデザイナやSQLビューでテーブルのある列の値をパラメータとして渡すことができないかとやってみたが、無理だった。
なんとかIDをパラメータで受け取って、なんとか名を返すクエリを作成しておいて、それを別のクエリから呼び出してやれば、面倒な結合作業をする必要がなくなるかな?
と思ったのであるが、パラメータクエリではできないようである。
しかし、Accessにはルックアップフィールドなるものがあり、これを使用すれば、なんとかマスタから、なんとかIDを検索して、なんとか名で表示する、ということが簡単にできるらしい。
やってみるとしよう。なんとかマスタだとわかりにくいので商品マスタにしよう。まずは、商品マスタテーブルを作成するのである。
作成した商品マスタテーブルにレコードを作成
商品ID列が、主キーであり、オートナンバー型となっているところがミソ。
注文テーブルを作成
次に商品マスタの主キーである商品IDを参照する、注文テーブルを作成してみる。
注文ID列を主キー、オートナンバー型で作成。
注文日列を日付時刻型で作成。
商品列を「ルックアップウイザード」で作成。
これで、商品列がルックアップフィールドになった。商品マスタテーブルを開いているとリレーションを設定する際にエラーになるので注意。
商品列の次に、個数列を作成して、注文テーブルが完成となった。
注文テーブルにレコードを作成してみる
データシートビューに変更して、レコードを作成してみる。
注文IDは自動採番なので、注文日から入力していく。
次は商品列。ここがルックアップフィールドになっている。
このように、プルダウンのリストが表示され、商品マスタの内容が表示されている。
ガムを選んで、個数に1を入れてみた。
あら簡単。
これならフォームを作成しなくても、かなりいい線で入力できちゃう。
商品IDを気にしなくてよいのがイイね。
商品マスタテーブルを開いてみると
商品マスタをデータシートビューで表示してみると、以下のようになった。
商品「ガム」のレコードに子レコードが付く感じになっている。子レコードは、注文テーブルの内容だし。ここで入力も可能なようである。
ここまでできるのなら、単価*個数で金額の計算もやってみたいと思うでしょ。
できちゃうのですよ。Accessって"なにげ"にすごいのかも。
まずは、注文テーブルへの入力用のクエリを作成する。
注文テーブル入力用クエリを作成
作成タブに移動して、「クエリデザイン」ボタンをクリックしてクエリを作成する。
テーブルのリストが出てくるので、「商品マスタ」と「注文」のふたつを選択して「追加」する。Ctrlを押しながらクリックすれば、複数選択ができる。
ルックアップウイザードで、参照整合を付けたので、自動的に結合条件(リレーションシップ)が付いている。これは、便利。
フィールドに入力したい項目を列挙していく。
注文日、商品(ルックアップフィールド)、個数、金額(単価*個数で計算)。
このくらいでよいでしょう。
注文入力用クエリでレコードを作成
データシートビューに切り替える。
ビューの切り替えは、右下のステータスバーでやると操作しやすいかも。
こんな感じになるので、後は入力すればよいだけ。
金額の列は、計算しているので、入力はできない。個数を入力すると自動的に計算される。
すばらしい。

Access クエリ 徹底活用ガイド ~仕事の現場で即使える
- 作者: 朝井 淳
- 出版社/メーカー: 技術評論社
- 発売日: 2018/05/25
- メディア: 大型本
投稿者プロフィール

最新の投稿
コンピューター関係の記事2025年4月26日アイキャッチ画像にSQLアイコンとJSONアイコンが欲しい
コンピューター関係の記事2025年4月23日AdSense審査に無事パス
コンピューター関係の記事2025年4月22日SSブログ復活
コンピューター関係の記事2025年4月22日SSブログが無くなった余波は大きい