ExcelとAccessのスキルアップをサポートするサイトです

ExcelとAccessの学習室

【Accessクエリ入門】1回目-デザインビューで選択クエリを作る

この記事で学習できること
  • 選択クエリの使い方が分かってくる(Access初級者レベル)
  • 選択クエリを使うメリットを理解できる

前回ではAccessクエリのデザインビューについて軽く触れましたが、結構覚えることが多いため、数回にわたってより詳しい使い方について解説していきます。

選択クエリは、Accessのクエリの中で最も基本的な機能です。
木の幹に相当する選択クエリを習得できれば、枝葉の部分になる他のクエリはスムーズに習得できます。

まずは、しっかりと選択クエリの基礎を身につけておきましょう。

学習の前に-選択クエリを使うメリット

選択クエリの使い方を知る前に、まずは使うことで得られるメリットについて触れておきましょう。
メリットを事前に知っておくと、効率よく学習できますし、スムーズに実戦で使いこなせるようになります。

ピンポイントで知りたいデータを得られる

データベースの中にはとてもたくさんのデータが詰まっています。
そのままデータを見ようとしても、読み取るのに時間かかりますよね?

選択クエリを使うことで、たくさんのデータからピンポイントでデータを取り出すことができます。

テーブルをつなげてデータをまとめる

データベースの中のテーブルは、正規化された状態でいくつかに分割されています。
正規化されている状態はコンピュータにとって扱いやすいですが、人間にとってはとても読み取りづらい表の構成になっています。

選択クエリを使うことで、個別のデータを一つの表にまとめて見やすく仕上げることができます。

簡単な計算を行う

クエリで計算を行うこともできます。

Excelで表を作る時もそうですが、簡単な計算を新しい列に足したくなることはありませんか?
例えば、商品の売価と原価がテーブルのフィールドに収められていた場合、きっと利益がどのくらいか知りたくなりますよね?
場合によっては、利益率も知りたくなるかもしれません。

選択クエリのフィールドに関数や計算式を入れることで、ほしい計算結果を表示することができます。

テーブルデータを壊さない

更に、選択クエリ自体はテーブルのデータを壊しません。

更新、追加、削除クエリはテーブルのデータを変えてしまいますが、選択クエリはデータを参照するだけです。
クエリを作り間違えてもデータを壊さないので、気軽にいろんなクエリを作ってみましょう

ただし、作りっぱなしにせず、試しに作ったクエリを削除するのをお忘れなく。

テーブルの選定と結合の設定

それでは、これから選択クエリの使い方について解説していきます。
新しいクエリをデザインビューで開くと、初期設定で選択クエリが使えるようになっています。

デザインビューを開いてからまず行うことは、テーブルとフィールドの選定です。
更に、必要に応じて複数のテーブルを結合させます。

テーブルとフィールドの選定

テーブルを選ぶ方法はいくつかありますが、オブジェクトウィンドウからのドラッグアンドドロップが一番シンプルで楽でしょうね。

右クリックメニューやリボンメニューからもテーブルを追加できます。

フィールドをグリッドに追加するのも、マウス操作だけで完了します。

全てのフィールドを表示させたいときは、一番上の「*」をドラッグします。

フィールド名を初期値から変更する方法も大事なことなので、忘れずに触れておきます。
フィールドを選択した後、変更後のフィールド名と:(コロン)を前に書きましょう。

フィールドに関数を設定するときもこの方法を使いますので、覚えておきましょう。

テーブル間の結合

つなげたいフィールドどうしをマウスで引っ張れば結合が設定されます。

結合を右クリックすると、プロパティが表示されます。プロパティでは、内部結合や外部結合などの細かい設定を行うことができます。

ここでは簡単に触れただけですが、結合についてまだまだ知っておいたほうがいいテクニックがありますので、次回に詳しく解説していきますね。

抽出条件を設定する(WHERE)

たくさんのレコードの中から目視でデータを探すのって大変ですよね?
そんな時は、デザイングリッドに条件を書き込みましょう。

抽出条件を上手に設定できればほしいデータをすぐに取り出せるようになりますが、追及すれば本当にたくさんの書き方があるので、本記事ではとても書ききれません。
ここではよく使う3つの方法に絞って解説していきます。

  • データ型で書き方を変える
  • あいまい検索を行う
  • 範囲を指定する

くらいでしょうか?

では、データベースを使っていろいろな条件を設定してみます。
サンプルデータベースを使いたい方はこちらからダウンロードしてくださいね!
>>サンプルデータベース

元データになるテーブルは「T02発注伝票」を使います。

いろんな条件の書き方を試すためにも、いったん「クエリ1」を作って全てのフィールドを選択しておきます。

これから実際に検索条件を入れてみますが、「こんな検索は実際にしないでしょ?」というものもあるかもしれません。
あくまでも、検索方法の練習が目的ですのでご理解いただければと思います。

データ型で書き方を変える

抽出条件を設定するためにも、まずはデータ型により書き方が微妙に変わることを頭に入れておきましょう。

数値型で設定されている「発注登録No」に条件を入れてみると、普通に「2」と入力されました。

日付型の「発注日」に条件を入れてみると、前後に「#」が付け加えられています。

文字列型の「担当者」は、前後に「”」が付け加えられました。

このように、データ型によっては前後に記号が付け加えられます。
Accessのデザインビューでは自動で記号が付け加えられますが、どんな記号になっているかは覚えておきましょう。
SQLビューやVBAコードなどを使ってカスタマイズしたい時には、きっと大きく役に立ちます。

あいまい検索を行う

あいまい検索はとても便利な機能ですので、ぜひマスターしておきましょう。

ここでは、発注先名に「商」を含むレコードを取り出してみます。

  • Like "*商*"

と書くのがポイントです。

データシートビューで結果を確認してみると、「ヤマダ商事」が条件として抽出されました。

「商~」のように指定した文字から始めたい場合は、「Like "商*"」としましょう。
逆に「~商」のように指定の文字で終わらせたい場合は「Like "*商"」とします。

あいまい検索で使う「*」(アスタリスク)はワイルドカードと呼ばれていて「どんな文字列が入っていてもよい」という意味をさしています。

この記事を読んでいる方の中には、過去に「UNO」というカードゲームで遊んだことはありませんか?
「UNO」のルールでは、ワイルドカードには「自分の好きな色を何でも指定できる」という能力があります。
あいまい検索のワイルドカードと「UNO」のワイルドカードをひもづけておくと、楽しくデータベースを学べますね。

範囲を指定する

期間などの範囲を抽出する方法も便利でよく使われます。
2020年4月1日から 2020年6月30日までに発注されたデータを抽出してみます。

  • Between #2020/04/01# And #2020/06/30#

データシートビューで結果を確認すると、指定した条件で結果が表示されました。

デザインビューでは「2020/4/1」とタイピングしても「#2020/04/01#」と自動で変換してくれます。
一方、SQLビューの場合は「#」を書き忘れた場合は正しく結果を表示してくれません。
つまり、デザインビューは操作する人にとって扱いやすい仕組みになっているのです。

今回書ききれなかった条件抽出の使い方については、後日くわしく解説します。

データを並べ替える(ORDER BY)

金額の大きいデータを確認したいけど、データがバラバラで分かりづらく感じたことはありませんか?
AccessのクエリにもExcelのソートと同じような機能があります。
デザイングリッドの「並び替え」で並び替え条件を設定してあげましょう。

ドロップダウンリストで昇順と降順を設定できます。

発注金額を「降順」に設定してデータシートで結果を確認してみると、金額の大きい順番に並び替えることができました。

並べ替えを設定するフィールドが文字列の場合、文字コード順で設定されます。
結果、想定していない順番にデータが並び替えられることがありますので、下のような対策を検討してみてもよいでしょう。

  • 文字列の中に数字があれば桁数を合わせる
  • 並び替えを設定するフィールドを別途設ける
  • データの入力順を残したければオートナンバー型のフィールドを作っておく

クエリで関数を使う

クエリのフィールドに関数を使う場合は、フィールド名と「:(コロン)」を先に書き込むようにしましょう。
ここでは、テーブル「T02発注伝票明細」の数量と単価をかけて金額を算出してみました。

Accessの場合、関数を詳しく覚えなくてもSQL文とVBAコードでかなりの部分を代用できますが、最低限下に挙げたものは使えるようになっておきましょう。

  • 四則演算・・・足し算、引き算、掛け算、割り算
  • 集計関数・・・合計や平均、カウントなど
  • IIf関数・・・条件分岐を行う(ExcelのIF関数と同じ)
  • Format関数・・・年月などの書式を設定するときに使う
  • IsNull関数・・・値がNullかどうかを判断する
  • Nz関数・・・値がNullだった場合に替わりの値を指定する(0を指定することが多い)

Accessの場合は、Nullが原因でエラーの結果を返すことがよくありますので、Nullとどう付き合っていけるかが鍵になってきます。

他の関数を含む詳しい書き方については、別記事にて紹介していきます。

クエリからクエリを作る

クエリはテーブルからだけでなく、クエリからもクエリを作ることができます。
一見便利なように見えますが、使い方が悪いと解読不可能なクエリが仕上がるという本当に危険な機能です。
複雑なデータ加工を選択クエリで完結できるため、ついやってしまいがちですが、結局作り直さないといけないはめになってしまいます。

クエリを上手に操るためのコツをまとめた記事もありますので、よかったらそちらもどうぞ。

>>【SQL学習入門】4回目:Accessクエリの数を減らすSQL文の書き方

>>【中級者】Accessをより便利に活用するために必要な設計(バッチ集計)

まとめ

今回はデザインビューで選択クエリを作る方法について解説しました。
デザインビューを使うと便利ですが、SQLのSelect文を予備知識として頭の中に入れておくとよいでしょう。
当ブログでもSelect文について解説していますので、こちらも合わせてご覧ください。

>>【SQL学習入門】1回目:Accessで使えるSELECT文(前編)

次回はクエリの結合についてより詳しく解説していきます。


本日もありがとうございました。