さて、今回のテーマは「わからないじゃなくて知らないだけ。クエリなんて簡単だ!」です。
前回は「ExcelデータとAccessをリンクする」をお届けしました。今まで扱っていたExcelデータを生かし、データ処理はAccessで行い、その結果をExcelでエクスポートするという「適材適所戦略」のために、最初に「ExcelデータをAccessへリンク」させました。
さて、今回の内容は、Accessでのデータ処理のキモとなる「クエリ」についてです。
1,Accessのデータ処理は「クエリ」を使う。
2,クエリ作成:使用するテーブルを決定する。
3,クエリ作成:抽出する項目を決定する。
4,クエリ作成:抽出条件を追加する。
5,クエリ作成:クエリを実行する
6,クエリ作成:クエリを保存する。
7,今回のおさらい
となります。
そして、今回のAccessを作成する目的を再確認します。
今回は、用意されたExcelデータより「指定された日の売上データを抽出する処理」をAccessで行い、その抽出されたデータをExcelデータとしてエクスポートします。
前回でExcelデータのAccessへのリンクは完了しましたので、今回はクエリにて「指定日の売り上げデータを抽出する処理」を作っていきます。
それでは、さっそく始めていきましょう!
1,Accessのデータ処理は「クエリ」を使う。
最初にAccessにてデータ処理を担う「クエリ」という機能を簡単に説明します。
Excelでデータ処理を行う場合は「関数」や「VBA」を使用します。
Accessにてデータ処理をする場合、多くは「クエリ」を使用します。クエリは「テーブル、つまりデータに対して操作を行う役割」を担っています。クエリには、Excelのフィルタ機能や並べ替え機能と同じような機能がありますので、扱い方さえ知ってしまえばそこまで難しいものではありません。
クエリについての詳細は、今回のExcel⇒Access⇒Excelの処理全体の説明終了後に、ひとつひとつ解説していきます。
ここでは「クエリとは、テーブルの操作を行うAccessの機能」とだけ覚えておきましょう。
2,クエリ作成:使用するテーブルを決定する。
Excelの関数は、SUMから始まり、VLOOKUPなどがあります。それぞれに「役割」があり、それを実行できます。
Accessでは、先ほど説明したようにそれらの処理を「クエリ」で行います。
クエリには種類があります。
クエリの種類は代表的なモノとして
- 選択クエリ
- 削除クエリ
- テーブル作成クエリ
- 追加クエリ
- 更新クエリ
があります。
今回のデータ処理では、ひとつめの「選択クエリ」を使用します。
選択クエリはテーブルより指定したデータを抽出する機能になります。
そのほかのクエリについては、別の機会で説明しますので、ひとまず頭の片隅に置いておいてください。
それでは、前回Excelデータをリンクさせた「Sample_Database.accdb」にクエリを作成していきます。
ここからは実際にAccessを操作していきます。
デスクトップのAccess講座フォルダより、「サンプルデータベース」を起動させてください。
Accessが起動しましたら、上部メニューの[ 作成 ]をクリックします。
すると、このように『 クエリ1 』というタブが作られ、『 テーブルの追加 』が開いていると思います。
同じような画面ではなく、中央付近に「テーブルの追加」が表示されている方は、私の使用しているAccessバージョンと異なっているためです。
表示のされ方が違うだけなので、やることは同じです。
この『 テーブルの追加 』のウィンドウは「どのテーブルを操作しますか?」という選択画面です。
今回は、リンクしたExcelデータ、Accessで言うテーブルの「Sample_Sales_Data」を使用しますので、[ リンク ]タブをクリックし、[ Sample_Sales_Data ]をダブルクリックしてください。
「Sample_Sales_Data」を選択後、下部にある[ 選択したテーブルを追加 ]をクリックでも同じです。
クエリに「Sample_Sales_Data」が追加されました。
他に操作を行うテーブルはありませんので、「テーブルの追加」は右上の[ × ]で閉じておきましょう。
表示されたテーブルが少し小さいので、見えている項目も少ないのでみづらいですね。フォルダを大きくしたりするのと同じように ⇔ をドラッグして少し大きくしましょう。
このように大きくすることが出来ます。
これで「どのテーブルを使用するか」の設定が完了しました。
今回操作するテーブルはひとつでしたが、二つ三つとテーブルを表示させて操作することはもちろん可能です。でもそれは、また別のお話…
続いて、抽出する項目を決定します。
3,クエリ作成:抽出する項目を決定する。
続いて、Excelへエクスポートする際に必要な「項目」を決定します。今回の目的は「指定された日の売上データを抽出する処理」です。
Excelで考えると「オートフィルタ」機能での日付指定を思い浮かべると思いますが、Excelでは「不要項目は削除できない」ですよね?
しかし、Accessのクエリを使用すれば「必要な項目だけ」を抽出することが出来ます。
こちらのみでテーブルを表示しますが、このテーブルの中から、今回のExcelへエクスポートする際に必要な項目は・・・
- 注文受付日
- 注文ID
- 商品名
- 個数
- 単価
- 売上金額
の6項目とします。これらを抽出できるようにクエリを操作していきます。
それでは、始めていきます。
クエリ内にあるテーブルの[ 注文受付日 ]を選択し、ダブルクリックをしてください。
この画面のようになりましたでしょうか。
このように画面下部に「注文受付日」が追加されたかと思います。
このようにして、抽出する必要な項目を画面下部のフィールドへ追加していくという方法です。
同じように「注文ID」「商品名」「個数」「単価」「売上金額」もダブルクリックで追加をしていきます。
次は、ちょっと違うやり方をします。
[ 個数 ][ 単価 ][ 売上金額 ]をコントロールキーを押しながら、クリックして選択します。いわゆる「複数選択」ですね。
今回の場合は、抽出したい項目が連続しているのでShiftキーでもOKです。
選択されていることを確認したら・・・その3つをドラッグして、画面下部に持っていき「商品名」の右のフィールドあたりでドロップします。
これで、6つの項目
・注文受付日
・注文ID
・商品名
・個数
・単価
・売上金額
をフィールドへ追加することが出来ました。
続いて、フィールドの選択です。今回は「単価」選択します。
フィールド上部あたりにマウスポインタを持っていくと、下向き黒矢印が表示されます。
それを確認したら、クリックをします。
次の画像のように反転状態になり、選択することが出来ました。
今回は選択項目を削除しませんが、Deleteボタンを押せば、選択項目を削除できます。
では、次は「項目の移動」です。
フィールド上部へマウスポインタを合わせると矢印になるポイントがあります。
それを確認出来たら、Excelのセル移動と同じように項目の位置を移動させることが出来ます。
こちらの画面のようになっていない方は、先ほどの方法で修正してください。
これで、抽出する項目の決定は終了です。
Excelでは、このように必要項目だけを別表にしたい場合は、別シートに作成しなければなりません。しかし、Accessであれば簡単に必要項目だけを指定することができます。
次は「抽出条件」を追加していきます。
4,クエリ作成:抽出条件を追加する。
続いて「抽出条件を追加」します。
繰り返しですが、今回の目的は「指定された日の売上データを抽出する処理」です。
先ほど「注文受付日」を必要項目として選択しましたので、抽出条件は「 注文受付日が2019/12/01 」にします。
それでは、Accessを操作します。
フィールド『 注文受付日 』の『 抽出条件 』の行に抽出条件を入力します。
注文受付日の項目の上から5行目、空色枠部分に【 2019/12/01 】と入力しEnterで確定してください。
この空色の箇所が抽出条件のラインになります。
次の図のように「 #2019/12/01# 」のように「 # 」が追加されたと思います。
クエリの抽出条件で日付を指定する時は、もちろんAccessが「これは日付かな?」と判断した場合のみですが「 #で日付が囲まれる 」ので覚えておいてください。
これで、「注文受付日が2019年12月1日のデータを抽出する」という条件が追加できました。もちろん、日付だけでなく、テキストの部分一致なども指定することが出来ます。Excelのフィルタ機能にある検索ならAccessでも対応できると考えても良いと思います。
続いて、クエリの実行になります。
5,クエリ作成:クエリを実行する。
ここまでに必要項目も決定し、抽出条件も設定しましたので、クエリを実行します。
Excelのオートフィルタも日付などを設定しただけでは実行されませんよね?クエリも同じように「実行」させる必要があります。
クエリを実行する際には、画面上部の[ 実行 ]をクリックすることで、このクエリが実行されます。
「あれ?実行がないぞ」となった方は、上部メニューの[ デザイン ]タブをクリックすれば、同じ画面になるかと思います。
それでは[ 実行 ]をクリックしてください。
このように実行結果が表示されました。
「2019年12月1日」の売上データが抽出されていることが確認できると思います。
このようにして必要なデータの抽出などを行うのが「クエリ」です。Excelのように、関数を用いてクエリ内で計算することも出来ます。
クエリは様々な活用方法がありますが、それはまた別のお話…
それでは、今表示されている実行結果画面より実行前の抽出条件などを設定する画面に戻します。
左上に『 三角定規 』」のアイコンがある『 表示 』というグループがあります。この三角定規の下の[ ▼ ]をクリックします。
すると、上から
・データシートビュー
・SQLビュー
・デザインビュー
と表示されます。
先ほどクエリを実行して表示された画面が『 データシートビュー 』といいます。
ひとつ飛ばして、三つ目の[ デザインビュー ]をクリックしてください。
先ほどの画面に戻りました。
最初の時点では触れませんでしたが、この画面を「デザインビュー」と言います。
処理結果画面がデータシートビュー
処理内容を設定する画面がデザインビュー
と覚えておきましょう。
もうひとつ「SQLビュー」がありましたが、ちょっと専門的な話になるので、ここでは説明を割愛します。
ここのボタンをクリックすることにより、それぞれのビューを行き来することが出来ます。
続いて、先ほどとは異なる方法で『 データシートビュー 』をクリックします。
今回は下の表示の▼ボタンではなく、空色枠の[ アイコン ]をクリックしてください。
これがデータシートビューのアイコンになります。
先ほどの処理結果画面になりました。
それでは、次にデザインビュー、[ 三角定規のアイコン ]をクリックしてください。
このようにして、デザインビュー⇔データシートビューと変更することが出来ます。
それでは、せっかくなので、抽出条件を変更してみましょう。
「 #2019/12/01# 」を「 #2019/12/03# 」に変更して実行してみます。
[ #2019/12/03# ]に変更して、[ 実行 ]をクリックします。
抽出結果が2019/12/03の売り上げデータとなりました。
このようにして、クエリの抽出条件を変更することが出来ます。
それでは、実行が完了しましたので、次はクエリの保存をしたいと思います。
6,クエリ作成:クエリを保存する。
最後に作成したクエリを保存します。
「保存できる」ということは、次回そのクエリを実行した際には「同じ結果が表示される」ということです。
これもAccessの特徴ですね。
それでは、『 クエリ1 』と表示されているタブの[ × ]をクリックしてください。
すると保存するかのメッセージが表示されますので、[ はい ]をクリックします。
今回は【 001_指定日付売上データ 】という名前にします。
入力が完了しましたら、[ OK ]をクリックしてください。
左側のウィンドウに、『 001_指定日付売上データ 』として保存されました。
しかし、ちょっとクエリ名が長いので表示が切れていますね。ウィンドウの大きさ変更と同じように、境界線部分でウィンドウの幅を変更できますので、変更しておいてください。
はい、これで幅が広くなり、クエリ名がすべて見えるようになりました。先ほど保存したクエリ『 001_指定日付売上データ 』を実行しますので、クエリ[ 001_指定日付売上データ ]をダブルクリックしてください。
先ほどの条件で実行結果が表示されたと思います。
このように、クエリを何度でも再利用出来るのはAccessの利点です。
確認できましたら、クエリタブ横の[×ボタン ]で閉じておいてください。
クエリの作成手順は以上になります。
クエリの作成方法自体はそこまで難しくないと思います。今回の基礎的なクエリの作成方法に様々な条件やテクニックなどを追加していくだけです。
これから、どんどん作っていきましょう!!