Access入門(21)クエリの作り方

以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light

本講座のシリーズは以下にて閲覧可能です。
https://www.nicovideo.jp/series/231327

本文に関連する動画は以下にて閲覧可能です。

今回は、クエリの作り方について説明をします。
本稿では、以下の内容について解説を行っております。
1)クエリとは
2)クエリを再実行する
3)テーブルでデータを抽出する
4)フォームからデータを抽出する
5)クエリの作成方法
6)クエリに抽出条件を付ける
7)クエリである条件以上のデータを抽出する

1)クエリとは
クエリとはテーブル等からデータを抽出したり、集計したりすることができる機能です。
下記の通り、作成されたクエリはナビゲーションウィンドウの上部のすべてのAccessオブジェクトでみると表示されます。図左部では3つのクエリが作成されているのが確認できます。

例えば、クエリの最上部に表示されている「限度額150以上」というクエリは「顧客管理」テーブルから条件に与えられた限度額より大きいデータを抽出するクエリです。下図に示す通り、クエリ「限度額150以上」をクリックするとパラメータを入力するダイアログボックスが表示されます。パラメータの入力欄に「100」と入力して「OK」ボタンを押します。

下図の通り、「顧客管理」テーブルから「限度額」項目に100より大きい数値が入っているデータを抽出しました。

クエリの名前とクエリの処理内容に若干、かい離があるのはご容赦ください。本来はクエリの処理内容に合致するようなクエリ名を付けるのが良いかと思います。

結果表示欄の最下部では、「顧客id」項目欄が「0」、「限度額」項目欄が「\0」と表示されている行があります。左側に「*」のようなマークがついていますがこれは抽出結果ではなく、新規に入力できる行でして、抽出結果ではありません。

また、クエリでは特定の項目だけを表示できるのも特徴の1つです。Accessではテーブルに項目を255個まで登録できますが、ある抽出条件の際には特定の項目だけをみたいということもあるでしょう。そのような場合には、見やすく結果を表示できます。

下図の通り、左側のナビゲーションウィンドウの「顧客管理」をクリックして「顧客管理」テーブルを起動します。限度額欄を確認すると、先程のクエリで限度額が100より大きな数値が抽出されているのが分かります。

2)クエリを再実行する
クエリを再度、実行する場合には一旦、実行結果を終了する必要があります。下図の通り、クエリ結果表示の右上で「×」ボタンを押して、結果表示を終了します。

下図の通り、「限度額150以上」クエリをダブルクリックして実行すると「パラメータの入力」ダイアログが表示されるので、今度は、「90」と入力してみます。

下図の通り、「顧客管理」テーブルから限度額」項目が90より大きいデータが抽出されました。

3)テーブルでデータを抽出する
抽出をする機能でしたら、実はテーブル内にも同様の機能があります。下図の通り、左側のナビゲーションウィンドウの「顧客管理」テーブルをダブルクリックしてデータを表示します。「限度額」項目にある下矢印をクリックすると並び替えと検索のメニューが表示されますので、メニューから「数値フィルター」の「指定の値より大きい」を選択します。

 

下図の通り、「ユーザー設定フィルター」というダイアログボックスが表示されます。限度額が次の値以上に「100」を入力します。

下図の通り、メニューから選んだ際には、「指定の値より大きい」を選択しましたが、ダイアログボックス上は「限度額が次の値以上」となっており、結果は下図の通り「100」以上の値が抽出されました。

例えば、「100の値より大きい」というと、通常は100を含まずに100よりも大きな数値が該当し、「100以上」というと、100を含んで100よりも大きな数値が該当します。残念ながら、Accessでは「より大きい」と「以上」は明確に区別されていません。

「より大きい」と「以上」は明確に区別されてはいませんが、テーブルの数値フィルター機能を使って、データが抽出できることは確認できました。

4)フォームからデータを抽出する
フォームからでも場合によっては、データを抽出することが出来ます。下図の「顧客管理」フォームは「顧客管理」テーブルと連結をしているフォームです。

下図で、フォームの「限度額」項目欄を右クリックすると以下のようなメニューが表示されます。その中から「\100以上」を選択します。

結果は、下図のようになります。そもそもフォームが「単票フォーム」で1件のデータしか表示しない画面レイアウトなので、何も変わっていないように思いますが、下図の左下をみると、「フィルター適用」という欄に色が付き、その横側が「1/4」と表記されているのが分かります。

意味合いとしては、「限度額」項目欄から「\100以上」を選択しましたので、その結果、「フィルター適用」がなされたということです。フィルターとは、何らかの条件でデータを選択抽出していることを示しています。その結果「1/4」で、トータル4件のデータが抽出され、本フォームではその1件目を表示しているということです。

下図の通り、左下部の「1/4」の右側の「➡」ボタンを押すと、画面に次のレコードが表示され、左下部が「2/4」と表示されます。

フィルターを外すには、「フィルター適用」という箇所をクリックします。すると下図の通り、「フィルター適用」という箇所が「フィルター処理なし」に文言が変更され、その横がフィルター中は、「1/4」と表示されていたものが「1/8」となりました。

「1/8」は「顧客管理」テーブルの行数が8件あり、その内、現在の画面では「1」件目を表示していることを示しています。

つまり、データ抽出だけを考えるとテーブルやフォーム上からでも可能です。ただ、クエリは特定の条件を抽出するために専用に作成されているので、特定の条件に対して頻繁に抽出が必要な場合などにクエリを作成しておくと便利かと思います。

5)クエリの作成方法
クエリの作成方法について説明をします。下図の通り、作成タグから「クエリデザイン」アイコンを選択します。

下図の通り、「テーブルの表示」画面が現れます。この画面からはどのテーブルを使ってクエリを作成するかを選択します。

「テーブルの表示」画面をみると、「テーブル」タグの横に「クエリ」タグがあります。クエリは、すでに作成している「クエリ」からも作成できるという訳です。

テーブルは現在1つかありませんので上図の通り「テーブル」タグをみても「顧客管理」しか表示されていません。今回は「顧客管理」テーブルからクエリを作成したいと思います。

下図の通り、「テーブルの表示」画面の「テーブル」タグで「顧客管理」テーブルを選択して、下の「追加」ボタンを押します。すると左側のクエリ内に「顧客管理」テーブルが表示されます。

クエリは複数のテーブルとクエリから1つのクエリを作成することが可能です。今回、作成するクエリは「顧客管理」テーブルしか使用しないので、「テーブルの表示」画面で「閉じる」ボタンを押して、「テーブルの表示」画面を閉じます。

作成するクエリでは、「顧客管理」テーブルから「顧客id」「顧客名」「限度額」の3項目を表示することにします。

下図の通り、クエリデザイン画面の下部にフィールドという欄がありますので、「↓」ボタンから表示したい項目を選択します。

ここでは、クエリで表示可能な項目を選択できます。本クエリは上部で「顧客管理」テーブルを選択しましたので、「顧客管理」テーブルに属する項目が候補として一覧表示されます。

フィールドで「顧客id」を選択すると下図の通り表示されます。テーブル欄には「顧客管理」テーブルと表示されています。これは「顧客id」項目を「顧客管理」テーブルから選択したことを示しています。

現在は、1テーブルからクエリを作成しているので、テーブル欄は不要に思うかもしれません。クエリは、複数のテーブルから1つのクエリを作成することも可能です。同一テーブル内では同一の項目名を付けることはできませんが、異なったテーブル間では同じ項目名を付けることが可能です。そのような場合には、選択したフィールドがどのテーブルから表示されているかは非常に重要な情報となります。

また、表示欄にチェックが入っています。このチェックを外すと項目が表示されなくなるので注意が必要です。

同様にして、下図の通り、「顧客名」「限度額」項目を選択します。

下図の通り、クエリデザイン画面の右上部の「×」ボタンを押すと、「‘クエリ1’クエリの変更を保存しますか?」というダイアログボックスが表示されますので、「はい」ボタンを押して、クエリに名前を付けて保存します。

今回はクエリ名を「限度額150以上」という名前を付けます。

下図の通り、左側のナビゲーションウィンドウのクエリ欄に先ほど保存した「限度額150以上」が表示されました。さらに、「限度額150以上」クエリをダブルクリックして実行すると、顧客管理テーブルから選択した「顧客id」「顧客名」「限度額」項目が表示されます。

6)クエリに抽出条件を付ける
次にクエリに対して選択条件を付加したいと思います。

再度、クエリを設計モードで開きます。下図の通り、左側の「ナビゲーションウィンドウ」で該当のクエリを選択し、マウスの右クリックをすると下図の通りにメニューが出てきますので、メニューから「デザインビュー」を選択します。

下図の通り、クエリのデザインビューの下部で左下に抽出条件という欄があります。この欄に抽出条件を付加します。下図では「限度額」という項目の下の抽出条件欄に「>150」と入力しました。これにより「限度額」が150より大きいデータのみが抽出されます。

一旦、デザインビューを終了し、上記の条件を保存します。クエリのデザインビューの右上の「×」を押すとデザインビューが閉じられますが、クエリに変更を加えた場合には、下図の通りに「’限度額150以上’クエリの変更を保存しますか?」というダイアログボックスが表示されますので、「はい」を選択してクエリを保存します。

下図の通り、該当のクエリをダブルクリックで実行すると顧客管理テーブルより限度額が150より大きなデータが抽出されていることが分かります。

ちなみに「限度額」が150より大きなデータとは150は含みません。つまり、「限度額」欄に150と入力されている場合で、抽出条件を「限度額が150より大きなデータ」とした場合にはテーブルの「限度額」欄に150と入力されているデータは抽出対象とはなりません。

7)クエリである条件以上のデータを抽出する
100以上のデータを抽出したい場合、つまりテーブルに100と入力されているデータも抽出対象としたい場合には、下図の通り、抽出条件欄に「>=100」と入力します。

上記の場合だと抽出条件が固定されているので、100以上のみをみたい場合にはそれでよいかもしれませんが、例えば、200以上のデータをみたいとか150以上のデータがみたいなどその場、その場で検索条件を変えたい場合があるかと思います。

そのような場合にはクエリを実行した際に数値の条件を入力できると便利です。

下図の通り、抽出条件欄に「>[]」括弧「 [  ]括弧閉じ「 ] 」を入力します。この括弧欄にダイアログで入力した条件が入ることになります。

上記の内容でクエリを保存して実行してみます。例えば、下図の通り、パラメータの入力で150と入力すると、「限度額」項目が150以上のデータが表示されます。

上記では条件を入力するダイアログボックスが単に「パラメータの入力」となっています。

制作した段階ではクエリの内容をよく覚えているかもしれませんが、だんだんとどのようなクエリだったのか、内容を忘れてしまうこともあるでしょう。

もう少し、ダイアログの表記が分かり方が良いかと思います。下図の通り、抽出条件欄に「>=[限度額を入力してください]」と入力してクエリを保存します。

下図の通り、クエリを実行するとダイアログボックスに「限度額を入力してください」と先ほどデザインビューで入力した文言が表示されます。

 

自分だけで使用するならどのような形でも構いませんが、会社で使用するなど自分以外の方が使用する場合には、何気ない工夫で随分と使い勝手が向上するものです。


ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light
本記事に関連する動画講座を閲覧できます。一部の動画は無料でも閲覧できます。

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ITと経営に関する動画を配信しております。
よろしければ、チャンネル登録をお願い致します。

無料から学べる講座
https://www.ai-light.com/itkeiei/
本記事に関連する動画講座をセット販売しております。
その他、ITと経営に関する動画もセット販売しております。

格安ホームページ制作所
https://www.ai-light.com/hp2
インターネットマーケティングに関する記事が無料で閲覧可能です。

株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。