1. そもそもクエリとは?
クエリ (Query) とは、テーブルのデータを検索・抽出・変換・集計するための仕組みです。Accessでは、テーブルに対して行う「問い合わせ(Search)」や「集計(Aggregation)」を作成するのにクエリを使い、これをSELECTクエリと呼びます(ほかにも更新系や追加系のアクションクエリがありますが、まずSELECTを覚えるのが基本)。
ポイント
- テーブルが生データの保管場所
- クエリで必要な列・行だけ取り出す
- クエリ結果は“仮想テーブル”のように扱える:レポートやフォームで利用可能
2. クエリの作成方法:デザインビューとSQLビュー
2.1 クエリ デザインビュー
- [作成]タブ →[クエリデザイン] を選択
- 「テーブルの表示」ダイアログが出るので、クエリで使いたいテーブルを追加
- デザイン画面上で、使いたいフィールドをダブルクリックまたは下部の**「フィールド」行**にドラッグ
- 「抽出条件」行に検索条件(例:
> 100
、Like "*東京*"
など)を指定して実行
- 実行すると、選択したフィールド・条件に合うレコードが表示される
例: 顧客テーブルから「顧客名」「住所」を抽出し、住所に“東京”が含まれる行を表示
- テーブル:
tbl_顧客
- フィールド:顧客名、住所
- 条件:住所の抽出条件 →
Like "*東京*"
- 実行 → 住所に「東京」という文字列が入っているレコードだけ表示
2.2 SQLビュー
- デザインビューで設定した内容は、SQL文として見ることも可能です。
- リボン上の「表示」→「SQLビュー」に切り替えると、下記のような文が見える(例):
SELECT 顧客名, 住所
FROM tbl_顧客
WHERE 住所 LIKE "*東京*";
- SQL文を直接編集して、Access以外のデータベース(SQL Serverなど)で使う方言に合わせることもできる。
- 慣れてくるとSQLビューで微調整した方が速い場面もある。
3. SELECTクエリの基本構文・要素
- SELECT句
- どのフィールドを取り出すか
- 例:
SELECT 顧客名, 住所
- FROM句
- どのテーブル(またはクエリ)を対象にするか
- 例:
FROM tbl_顧客
- WHERE句(任意)
- 検索条件を指定
- 例:
WHERE 住所 LIKE "*東京*"
- ORDER BY句(任意)
- 並べ替え指定
- 例:
ORDER BY 顧客名 ASC
Accessのクエリデザインビューでは、上記のようなSQL構文を画面操作で設定しやすくなっているだけで、裏ではSQL文が動いているとイメージすると理解が深まります。
4. 基本的な抽出条件の指定例
4.1 数値や日付の条件
- 数値:
> 10
, Between 1 And 5
, =100 Or =200
- 日付:
>= #2023/01/01#
(#
で囲むと日付リテラル)、Between #2023/01/01# And #2023/06/30#
例: 注文テーブルから2023年1~6月の受注データを取り出す
SELECT 注文ID, 顧客ID, 注文日, 数量
FROM tbl_注文
WHERE 注文日 BETWEEN #2023/01/01# AND #2023/06/30#
ORDER BY 注文日;
4.2 テキストの部分一致(Like演算子)
Like "*東京*"
→ “東京”を含む
Like "A*"
→ “A”で始まる
- Accessはワイルドカードが
*
や?
となる(SQL Serverなどの標準SQLは%
や_
なので要注意)
4.3 複数条件の組み合わせ(AND/OR)
- AND → 両方の条件を満たす
- OR → いずれかの条件を満たす
- NOT → 条件を満たさないもの
例: 都道府県が“東京”か“神奈川” AND 数量 > 50
SELECT *
FROM tbl_顧客
WHERE (住所 LIKE "*東京*" OR 住所 LIKE "*神奈川*")
AND 数量 > 50;
**5. JOIN(結合)で複数テーブルを扱う入門】
SELECTクエリではテーブルの結合(JOIN)を覚えると、リレーショナルDBの威力を感じられます。
- INNER JOIN: 両テーブルの結合キーが一致したレコードだけ取得
- LEFT JOIN: 左のテーブルは全部、右は一致するものだけ取得
- Accessのデザインビューだと、リレーション線をドラッグで結び、結合線の「プロパティ」で結合種類を選択
例: 顧客名と注文テーブルを合わせて、注文一覧を作る
SELECT C.顧客名, O.注文ID, O.数量, O.注文日
FROM tbl_顧客 AS C
INNER JOIN tbl_注文 AS O
ON C.顧客ID = O.顧客ID
ORDER BY O.注文日 DESC;
6. 初心者が最初に覚えるステップまとめ
- 単一テーブルでのSELECT
- [フィールドを選択] [抽出条件を設定] [並べ替え] → クエリ デザインビューで作ってみる
- 複数テーブルの結合
- デザインビューでテーブルを2つ以上追加し、関連フィールドを結ぶ → INNER JOIN/LEFT JOIN
- 集計クエリに挑戦
- クエリデザインで「集計(Σ)」をオン → GROUP BYやSUM, COUNT, AVGなどを設定
- パラメータクエリ
Like "*" & [入力してください] & "*"
のように、実行時にユーザーからキーワードを入力させる
一歩ずつ進めると、Accessクエリの操作に慣れていきやすいです。
7. よくある初心者Q&A
Q1: “操作は取り消されました” と出て実行できないのは?
- テーブルに存在しないフィールドをクエリで指定していたり、結合が間違っていたりすると起こりがち。デザインビューでフィールド名のつづりなどを確認。
Q2: “クエリが遅い”と感じるときどうする?
- テーブルに主キーがあるか確認。検索列にインデックスを張る。
- 余計な結合や演算列を減らし、パススルークエリ(SQL Server連携)などを検討。
Q3: 部分一致検索で思うようにヒットしない
- Accessのワイルドカードは
*
を用いる (%
では動かない)。
- 全角/半角文字などの表記ゆれも考慮する必要がある場合あり。
8. まとめ:SELECTクエリでAccessの本領を引き出そう
- SELECTクエリこそがデータ抽出・検索・並べ替えの基本。Excelで手動フィルタをしていたのを、自動化・構造化できる
- クエリ デザインビューを使うと初心者でも感覚的に「フィールド」「抽出条件」「並べ替え」「結合」を設定しやすい
- 慣れてくるとSQLビューの文法を理解でき、JOINや集計、パラメータ化などの応用にも手を広げられる
- 正しく作ったクエリをフォームのレコードソースやレポートのデータソースに設定すれば、業務アプリケーションを素早く構築可能
Accessクエリの初心者向けステップを踏むことで、必要なデータをピンポイントで取り出し、フォームやレポートで有効活用できるようになります。まずはSELECTクエリの基礎を繰り返し試し、リレーションとJOINによる複数テーブル参照、さらに集計クエリへと進んでみましょう。
関連記事
SELECTクエリを自由に扱えるようになると、Accessを本格的に使いこなす第一歩となります。ぜひ何度もクエリを作ってみて、デザインビューとSQLビューの両面から操作を覚えていってください。
ABOUT ME

入社した会社では、Accessを活用した基幹システムが長年運用されていました。しかし、開発者の高齢化により保守が困難となり、システムの維持・更新が急務に。
ほぼAccessに触れたことのなかった私は、ゼロから学びながら基幹システムを再構築してみることに。ついにはAccessによるシステム開発エンジニアとしてのスキルを身につけるまでに成長。
元々の業務のノウハウとそれを効率化するためのツール(Access)によって業務効率化システムをいくつも開発してきました。
みなさんの”なにか(業務のノウハウ)”とAccessで業務効率化を実現するお役に立てれば幸いです。
月30万の高配当投資も行っています。最新の銘柄情報もお届けしていきます。