こんにちは!あつもりです。
Access初心者にとって挫折しやすいポイントがクエリだと思います。
「クエリって何?」
「クエリを作成する画面を見ても意味がわからない」
こんなふうに思っているかたは多いですよね。
確かに、クエリを作るデザイン画面を見ても、直感的に操作しにくい。
何をやったらよいかわからないんですよね。
わからないから進まない。進まないからやめてしまう。
そこで今回は、クエリがわからない人向けに、サクッと10分でクエリを作ってみます。
まずはなんでもいいから作って動かす。それが大事です。
そうすれば少しずつクエリがどんなものか理解できると思います。
とにかくクエリを作っちゃおう
前回、作ったテーブルを使っていきます。
前回の記事はこちら。
まずは「在庫テーブル」に新しい列を追加します。
在庫テーブル右クリックして「デザインビュー」を開きます。
今回は在庫数列を追加します。
フィールド名を「在庫数」、データ型を「数値型」にしてください。
これで準備は終わりました。
次はいよいよクエリを作っていきます。
「作成」タブから「クエリデザイン」をクリックします。
するとクエリのデザイン画面が開きます。「テーブルの表示」というダイアログが表示されるので、「追加」ボタンをクリックします。
左上に在庫テーブルの列の一覧が表示されます。「閉じる」ボタンをクリックします。
次に画面下の表のところにいき、一番左の列の「フィールド」のプルダウンをクリックして商品名にします。
一番左の列に「商品名」の列が追加されました。
今度は隣の列に「在庫数」の列を追加します。
「在庫数」列が追加されたら、「抽出条件」のところに
>=10
と入力します。これは在庫数が10以上のデータを抽出するという意味です。
左上のタブを右クリックして「閉じる」をクリックします。
「はい」をクリックします。
クエリ名に任意の名前を入力します。ここでは「在庫数が10以上のデータを抽出」と入れます。
画面左の一覧にさきほど作った「クエリ」が追加されました。これでクエリは完成です。どうでしょう?とっても簡単ですよね。
このクエリは、「在庫テーブルの中から在庫数が10以上の商品だけを抽出する」という内容です。
クエリを実行する前に、在庫テーブルを開きましょう。在庫数の列を作っただけで、実際のデータが入っていないからです。
在庫数を適当に入力してください。ただし、作ったクエリは在庫数10以上のデータを抽出するので、在庫数10以上のデータいくつか作っておきます。
ここでは消しゴムとノートの在庫数を10以上にしました。
できたクエリをダブルクリックします。すると、
在庫テーブルにある商品のうちの在庫数が10以上の商品だけが抽出されました。
クエリとは何か
実際に作って動かしてみて、何となくクエリとはどんなものかわかりましたか?
クエリとは、テーブルの中から自分の欲しいデータだけを抽出する機能だと言えます。
クエリを作る手順は、
- 対象のテーブルを選ぶ
- 抽出する列を選ぶ
- 抽出条件を選ぶ
になります。
ちょっとおさらいしてみましょう。
ここで対象のテーブルを選びます。今回の例は「在庫テーブル」を選びましたね。
複数選ぶこともできますが、ちょっと複雑になるので今回は1つだけにしておきます。
次に抽出結果に表示したい列を選びます。今回は「商品名」と「在庫数」を選びましたね。
次に抽出条件を入力します。今回は在庫数10以上の商品を表示させたかったので、在庫数の列の抽出条件に
「>=10」と入力しましたね。
これかクエリを作る手順です。
クエリを作る手順はわかったけど、
なぜクエリが必要なのか?
と疑問に思うかたも多いと思います。
さきほど作ったクエリのように、「在庫数10以上の商品を抽出する」
をもしクエリなしでやろうとしたらどうでしょう?
在庫テーブルを開いて、在庫順でソートして、10個以上の商品をコピーする。
このような作業が必要になります。
この作業を1回だったらよいかもしれませんが、毎回やるとしたら面倒ですよね。
今回の例のように、単純な抽出条件なら、手作業でやれないこともありません。
しかし、もっと複雑な条件だったらどうでしょう?
手作業でやったら途方もなく時間がかかる場合があります。
そして、今回の例では、テーブルは在庫テーブル1つだけです。実用的なデータベースだと、テーブルがもっともっとたくさんあります。
そして、たくさんのテーブルを組み合わせて、自分が欲しいデータを抽出するのです。
例えば、
・在庫テーブル
・商品テーブル
という2つのテーブルがあります。
在庫テーブルには商品の在庫の数が入っています。
商品テーブルには各商品の基本データである、価格や原価などが入っています。
ここで、在庫が10個以上ある商品で、なおかつ、原価が100円以下の商品を抽出したかったとします。
その場合、在庫テーブルと商品テーブルを組み合わせなければ、欲しいデータは抽出できないいのです。
これを手作業でやるとすると、とんでもなく手間がかかるのは想像がつくでしょう。
でも、一度クエリを作ってしまえばボタン一発できてしまうのです。
これがクエリの便利なところです。
そして、クエリを使うことこそが、データベースを利用する意味でもあるのです。
なぜなら、データベースを使う目的の一つは、欲しいデータを簡単にすぐに表示させることだからです。
Access以外のデータベースでは、だいたいSQL文を使って欲しいデータを抽出します。
データベースとやりとりをする専用のソフトを起動して、そこからSQL文をコマンドとして打ち込むのです。
例えば、さきほどの在庫テーブルから在庫数10以上のデータを抽出する、場合だとSQL文は次のようになります。
これをいきなりデータベース初心が入力するのは、ハードルが高いですよね。モチベーションも下がってしまいます。
だから、Accessにはクエリ作成機能がついていて、SQL文を打ち込まなくてよいようになっているのです。なんて親切な機能なんでしょう。
実はAccessのクエリは裏ではSQL文が作られています。さきほどデザイン画面でテーブルを選んで、列を選んで、抽出条件を選びましたが、これは実は裏でSQL文が自動的に作られているのです。
つまりクエリはSQL文を自動的に作ってくれる機能というわけです。
さらに、クエリはレコードの抽出だけでなく、更新をしたり、削除したり、新たに追加することもできます。
これも他のデータベースであれば、SQL文を使って打ち込む必要があります。
まとめ
クエリはとにかく作ってみて慣れることが大事です。読むだけでなく実際に作ってみると理解がぐっと深まりますよ。
いくつかのテーブルからレコードを組み合わせて抽出したり、作ったクエリをフォーム画面のボタンから呼び出したりすることもできます。
そうやってできることを増やしていくとクエリが楽しくなってきますよ。
次は複数のテーブルを組み合わせてクエリを作るやりかたを紹介します。楽しみにしていてください。
最後までお読みいただきありがとうございました。
その使い方だと損してます!
会社員、個人事業主のかたへ。
無料で登録できるAmazonビジネスアカウントを知ってますか?
何と言っても便利なのが請求書払いによる後払いができるということ。
また、承認ルールを作成すれば、業務上必要な物だけに購入を制限することができます。
さらに多くの商品にビジネスアカウント価格が設定されており、個人アカウントより安く購入できます。
このように個人アカウントと比べてビジネスアカウントはお得な機能や特典がついています。
無料で登録できるので、会社員、個人事業主なら使ったほうが得なのは言うまでもありません。