2019年01月31日
Accessクエリ 選択クエリの作り方
ドラマ観るなら<U-NEXT>
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
Accessクエリについて
今回は「クエリ」について紹介していきます。
Accessの場合は「テーブル」「クエリ」「フォーム」「レポート」と大きな
要素が4つあります。
その中で一番重要な部分が「クエリ」だと思っています。
「クエリ」の出来次第でそのアプリケーションの評価が決まって
くるのではないでしょうか。
クエリの例を紹介しましょう。
サンプルとして私が過去に使用した「切手在庫表」を使用します。
上のように「仕入れ先」「出庫先」「切手種別」「入出庫」と
4つのテーブルがあります。
名前で大体の中身はわかると思います。
「T_仕入先」のテーブルです。
「T_出庫先」のテーブルです。
「T_切手種別」のテーブルです。
「T_入出庫」のテーブルです。
これらのテーブルから「入庫の合計」「出庫の合計」「在庫数」。
また期間の「入庫数」「出庫数」を求めて行きたいと思います。
まずはクエリの種類からですが「選択クエリ「クロス集計クエリ」
「重複クエリ」「不一致クエリ」「ユニオンクエリ」「更新クエリ」
等があります。
一番多く使用するのは「選択クエリ」だと思います。
【パソコン買取アローズ】
「選択クエリ」の作成方法
「T_入出庫」のテーブルから「入庫の合計」を表示するクエリを作ってみましょう。
まずは出来上がったものを紹介しましょう。
これが入庫数の合計を表示するクエリです。
テーブルに似ていますね。
このクエリの作り方を紹介していきます。
最初は単純な「選択クエリ」からの作成方法を紹介したいと思います。
上のように「T_入出庫」テーブルを開いています。
テーブルを開いた状態でも構わないし左のところでテーブルを選択して
おくだけでも大丈夫です。
リボンの「作成」タブから「クエリウィザード」を選択します。
ここで「選択クエリウィザード」を選択して「OK」します。
ここはクエリに表示させたい項目を選んで>を押すと選択された項目が
右側に移動します。
または項目を選択してダブルクリックすれば移動します。
すべて選択する場合は下側の>>を押してください。
今「種類」と「入庫数」だけ移動しました。
これで「次へ」を押します。
とりあえずここはこのままで「次へ」を押します。
「集計する」を選択した場合もやってみてください。
「集計のオプション」の設定によって胃色々な結果が得られます。
ここでクエリに名前を付けます。
「Q_全入庫」としました。これで「完了」を押します。
このように種類と入庫数が表示されました。
ここからデザインビューにします。
ここで「種類」の集計欄に「グループ化」を選択します。
そして「入庫数の合計」欄で「合計」を選択します。
この設定でどうなるかというと、種類でグループ化すると切手の種類でまとまる
ということです。
そして入庫数の合計で「合計」を選択すると「種類別でグループ化されたものが
合計される」ということになります。
要は切手ごとに入庫数が合計されるということです。
ここで表示を通常に戻しましょう。
最初に紹介した形になりましたね。
これで切手ごとの入庫数が表示されます。
国内&海外ホテル予約『トリバゴ』
次は「クエリデザイン」から作成してみましょう。
実際はこちらから作成するほうが楽だと思います。
リボンの作成タブから「クエリデザイン」を押してください。
先ほど似たような画面がありましたね。
あれと同じ画面です。
この画面はクエリの時に非常によく使用します。
早めに慣れるようにしてください。
ここで「T_入出庫」をダブルクリックするか、選択して「追加」を押すと
左上に「T_入出庫」が表示されます。
それから「閉じる」ボタンで「テーブルの表示」を閉じてください。
「T_入出庫」で「種類」と「入庫数」をダブルクリックすると下の表に表示されます。
ここでリボンの「集計」を押すと下の表に「集計」という行が表示されます。
後は先ほどと同じように「種類」の集計欄に「グループ化」を選択します。
そして「入庫数」欄で「合計」を選択します。
これで完成です。
後は名前を付けて保存してください。
こちらのほうが簡単でしょう。
後は慣れです。
どのように抽出・集計したいかを考えてからクエリを作成しましょう。
同じようにして「全出庫」も作りましょう。
世界中8000万人が利用する話題のホテル検索サイト『トリバゴ』
【選択クエリ】
本来の選択クエリとは少し違うので、本来の選択クエリの作り方も
紹介しておきましょう。
クエリウィザードでもクエリデザインのどちらで作ってもいいのですが、
「T_入出庫」からID以外のすべてを選択しましょう。
上記のようになりました。
ここで82円切手だけ抽出したいと思います。
「抽出条件」のところに「82」と記載しています。
これで「82円」だけ抽出されます。
当然120にすると120円切手だけ抽出されます。
これで通常表示にすると下のように82円切手だけのデータになります。
本来はこのように様々なデータのなかから特定のデータだけ抽出する場合に
使用します。
もちろん日付とか出庫先で抽出することも可能です。
またここから入庫だけ抽出したい場合は抽出欄に「Is Not Null」と入力します。
「Null」というのは覚えておいてください。
よく使用します。
ここを単に「Null」と入れると「Is Null」になります。
Nullというのは「無し」という意味です。
「0」ではありません。
ここでいうと数量の記載があるテーブルを抽出するという意味です。
このように82円切手の入庫だけ抽出できました。
もし「抽出条件」で購入先を「サークルK」を記載すると82円で入庫だけで
サークルKからの購入分が抽出されます。
この選択クエリも非常に便利です。
クエリの基本形なので必ず覚えてください。
またデザインビューで「並べ替え」を指定した場合は指定した並べ替えになります。
並べ替えの場合は左側が優先になります。
出庫も同じように作りましょう。
次に「在庫数」を出してみましょう。
単純に考えると「全入庫」と「全出庫」ができれば引き算をすれば差し引きで
在庫が出るはずですね。
やってみましょう。
クエリデザインで上のように「Q_全入庫」と「Q_全出庫」を選択します。
そしてどちらからでもいいので「種類」をマウスでドラッグして隣の種類まで
引っ張ります。
するとその間に線が現れます。
これが「リレーションシップ」です。「リレーションシップ」については後日詳しく
紹介するとして、とりあえず今回は左右に引っ張って線を作ってください。
それから「Q_全入庫」の「種類」と「入庫数の合計」をダブルクリックし
「Q_全出庫」の「出庫数の合計」をダブルクリックします。
これで一度通常表示にしてみましょう。
上のようになるのは納得できますね。
後はここに引き算を追加して「在庫数」が表示されるようにすればOKですね。
再度デザインビューにしてください。
出庫数の合計の右側に「在庫数: [入庫数の合計]-[出庫数の合計]」と記載しています。
「在庫数:」の部分は「フィールド名+:」で記載します。
次の「 [入庫数の合計]-[出庫数の合計]」が引き算の部分です。
引き算に使用するフィールド名は[]で囲みます。
これで切手ごとに入庫数−出庫数が計算されて「在庫数」のフィールドに表示されます。
通常表示にしてみましょう。
上記のように在庫数が表示されました。
このようにテーブルには単にデータだけ蓄積していきます。
そしてクエリで必要な項目を抽出して表示するなり加工するなりして結果を出します。
このためクエリの出来が非常に大事になってくるのです。
最初にどのようなデータベースを作るのかを考える場合、
「どのような結果を欲しいのか」から逆算していきどのようなクエリが必要か
考えていけばいいと思います。
またテーブルもできるだけ同じフィールドは作らないようにしましょう。
先ほど紹介した「リレーションシップ」でリンクできるので、
できるだけシンプルなテーブルを設計しましょう。
エーハチネット
【このカテゴリーの最新記事】
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/8517749
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック