テーブル作成クエリ

 クエリは基本的にテーブルのデータに基づいて作成されますが、テーブル作成クエリというものを利用することで、逆にクエリからテーブルを作成する、ということができます。
 簡単に言えばExcelにエクスポートするのと同じようなもので、ある時点でのデータをそのまま残しておきたい、というときに便利です。

手順

f:id:accs2014:20181216122202p:plain:right:w600

 手順ですが、まずは普通にクエリ(選択クエリ)を作成します。

f:id:accs2014:20181216122200p:plain:right:w600

 データシートビューの内容です。参考まで。

f:id:accs2014:20181216122157p:plain:right:w500

 さてここからが本番です。
 デザインビューに戻り、デザインタブから「テーブルの作成」と書かれたメニューをクリックします。

f:id:accs2014:20181216122155p:plain:right:w500

 するとダイアログが現れます。
 新しく作成するテーブルの名前を聞いてきますので、適当な名前(ここでは「販売実績テーブル」とします)を入力したうえで「OK」をクリックします。
 なお、既に存在するテーブルの名前を指定しても差し支えはありません(上書きされます)。ただし、クエリのもとになっているテーブルの名前(「販売テーブル」など)を指定してしまうと、後でエラーが出てしまいうまくいきませんので注意してください。

f:id:accs2014:20181216122152p:plain:right:w350

 その後クエリを保存すると、クエリのアイコンがこのように変化します。
 設定は以上で完了ですが、この段階ではまだ何も起こっておらず、「販売実績テーブル」というテーブルがどこかに作られた形跡もありません。

f:id:accs2014:20181216122305p:plain:right:w350

 そこでメニューの「実行」をクリックします(クエリを開いていない状態で、左のナビゲーションウインドウのクエリのアイコンをダブルクリックするという方法もあります)。

f:id:accs2014:20181216122302p:plain:right:w400

 確認を求められますので「はい」とします。

f:id:accs2014:20181216122258p:plain:right:w250

 これでついに「販売実績テーブル」が作成されました。

f:id:accs2014:20181216122255p:plain:right:w600

 「販売実績テーブル」を開いた様子です。
 当然ですが上記のクエリと同じ内容が表示されています。

備考

 用途としては、クエリが複雑で開くのに時間がかかる場合にクエリの内容をテーブルにしておいて検索用にする、といった例が考えらえます。
 ただし、作成されたテーブルはあくまでテーブルであって、元になっているクエリの内容が変化すると内容は一致しなくなってしまいます。内容を一致させたい場合は、その都度テーブルを作成する必要があります。

 別の用途としては、正規化されていないテーブルを実業務に用いている場合に、テーブル作成クエリを用いてマスタテーブルを作成することで正規化を進める、という例が考えられます。
 上記の例でいえば「販売実績テーブル」のような単一のテーブルをそのまま販売業務に用いていると、ある商品の名称や単価を何度も入力する必要があり、更新しようとするときに更新漏れが生じるなど、データの整合性や管理のしやすさに問題が生じる恐れがあります(単に検索用なら問題ありませんが)。

f:id:accs2014:20181216132739p:plain:right:w500

 そこで実際にマスタテーブルを作ってみます。クエリを用いて商品コード、商品名、単価を抽出しグループ化し、テーブル作成クエリにより新しいテーブルに書き出します。これが新たな商品マスタになるというわけです。

f:id:accs2014:20181216132736p:plain:right:w350

 テーブルを開いてみました。
 「販売実績テーブル」を用いた管理では、基本的に販売実績のない商品のデータを格納できないという問題がありますが、このようにマスタテーブルに分割すれば販売実績のない商品でもどんどん記録していくことができます。
 こうした使い方もテーブル作成クエリの有力な用途かと思います。