こんにちは、じじグラマーのカン太です。
50歳目前、素人同然のスキルで週末プログラマーをしています。
初心者のためのAccess講座の三回目です。
今回は、テーブルからデータを抽出するための「クエリ」を作ってみましょう。
クエリとは
クエリ(query)とは、「問い合わせ」という意味を持つ英語の単語です。
プログラミングではデータベースへの問い合わせや要求などの命令を意味します。
Accessでも「クエリ」というものが用意されています。
コードを一切書かなくても、ある程度の処理は作れてしまいます。
さすがマイクロソフトさん、いい仕事してくれます。
では早速作っていきましょう。
前回まで使用したAccessデータベースを使用します。
まだご覧になっていない方はこちらからどうぞ ↓
クエリの作成
「作成」メニューから「クエリデザイン」を選択してください。
表示するテーブルを聞いてきますので、「社員マスタ」を選んで「追加」をクリックしてください。
クエリのデザインメニューはこんな感じです。
まずは、表示する項目(カラム)を選びます。
テーブルの中から表示したい項目をダブルクリックすると、下の欄に表示してくれます。
(「*」を選ぶと全項目表示となります)
今回は、「社員番号」「姓」「名」の三つを選んでみてください。
「フィールド」欄に項目名、「テーブル」欄に「社員マスタ」と表示されています。
この状態で、「デザイン」メニューから「実行」(!マーク)をクリックしてください。
社員マスタの内容の全データが表示されるはずです。
「クエリ1」タブを右クリックして、「デザインビュー」を選ぶと元の画面に戻ります。
SQLの表示
「クエリ1」タブを右クリックすると、「SQLビュー」というものが選択できます。
SELECT 社員マスタ.社員番号, 社員マスタ.姓, 社員マスタ.名
FROM 社員マスタ;
と表示されます。
これがSQLと言われる命令文です。
(SQLについてはこちらの記事で紹介しています)
従来であればこのコードを自力で書く必要がありますが、Accessではマウスクリックだけでコードを自動生成してくれます。
SQLの勉強にもなりますので、クエリを編集した際はSQLビューで構文の確認をすることをおすすめします。
条件の指定
次に、条件を指定でデータを抽出してみましょう。
クエリデザイン画面の下部「社員番号」欄の「抽出条件」に ”0001” を指定します。
「デザインメニュー」 → 「実行」をクリックしてみてください。
サンプルと同じデータを入力していれば、スズキタロウ さんのデータだけが表示されるはずです。
SQLビューを確認すると、「WHERE」句が追加されています。
クエリデザインの画面では、このように抽出条件を指定することができます。
いろいろ条件を入力して試してみてください。
並べ替えの指定
続いて並べ替えを指定してみます。
今の状態であれば、データの抽出する順番は任意です(格納順に出てくる場合が多いです)。
クエリデザイン画面の下部、社員番号欄の「並べ替え」プルダウンメニューから「降順」を選択してください。
「昇順」は小さいもの順に、「降順」は大きいもの順に並び替えてくれます。
同じように、「デザイン」メニュー → 「実行」をクリックすると、社員番号の大きい順に並び替わって表示されているはずです。
SQLビューを確認すると、「ORDER BY」句が追加されていることがわかります。
クエリの検索結果からレポートを印刷する
作成したクエリを使って、リストを印刷することができます。
前回では社員全員の一覧を表示しましたので、今回は社員番号”0001” ~ ”0004” の人を、「姓」の五十音順で呼び出してリストを印刷してみましょう。
クエリの編集&保存
クエリデザインの「社員番号」欄の抽出条件に”0001”~”0004”まで縦に入力してください。
縦に入力していくと 「または(OR条件)」になります。
「姓」欄の並べ替えは、「昇順」を選択してください。
その後、適当な名前をつけてクエリを保存します。
サンプルは、「五十音順クエリ」という名前をつけました。
レポートを作成
前々回のレポート作成を覚えておられるでしょうか。
(忘れた方はこちらを確認ください)
「作成」メニュー → 「レポート」 → 「レポートウィザード」を選択してください。
「テーブル/クエリ」欄は、今回作成したクエリを選択します。
前回同様全項目を選択して「完了」ボタンをクリックします。
クエリの内容が正しく表示されているでしょうか。
まとめ
今回は
・クエリの作成
・条件、並び替えの指定
・作成したクエリを使ったレポートの作成
といった内容を紹介しました。
いかがでしたでしょうか。
条件を指定したクエリを作成し、その条件に合ったデータを抽出したリストができましたでしょうか。
余裕のある方は、前回作ったフォームにボタンを追加して、今回作ったレポートを印刷する機能を作ってみてください。
次回は条件付きのレポート印刷する機能を追加してみましょう。
コメント