Accessでデータベースを作る基本|テーブルからフォームまでの流れ
AccessでDBを作る全体フローを入門解説。空のファイル作成→テーブル設計(8種のデータ型・主キー)→リレーションシップ→クエリ→フォーム→レポートの6ステップを、Excelとの発想の違いを交えて丁寧に整理します。
結論:Accessのデータベース作成は「テーブル設計」から始める
Excelは「シートに並べる」発想ですが、Accessでは「何を、どのテーブルに、どんな型で入れるか」を先に決めることが出発点です。空のデータベースファイル(.accdb)を作ってからテーブルを設計し、リレーションシップでつなぎ、クエリ・フォーム・レポートを順に組んでいく流れが基本です。
各ステップの内容と、はじめてAccessを触る方がつまずきやすいポイントをまとめました。全体の流れをつかめば、作業の見通しが立ちます。
全体の流れ:6ステップ
Accessのデータベースは、次の6段階で組み立てていきます。
| 手順 | 作業内容 | Accessのオブジェクト |
|---|---|---|
| 1. DBファイルを作る | 空の.accdbファイルを新規作成する | (ファイル本体) |
| 2. テーブルを設計する | フィールド名・データ型・主キーを決める | テーブル |
| 3. リレーションシップを設定する | テーブル間の関係を結ぶ | (テーブル間の設定) |
| 4. クエリを作る | 条件絞り込み・集計の仕組みを用意する | クエリ |
| 5. フォームを作る | データ入力・閲覧の画面を設計する | フォーム |
| 6. レポートを作る | 印刷・帳票の出力レイアウトを設計する | レポート |
実務では3と4を行き来しながら進めることも多いですが、2のテーブル設計を後回しにすると、フォームやクエリを作り直す手間が増えます。最初の設計に時間をかけるのが結果的に早い、というのが現場でよく聞く話です。
ステップ1:空のデータベースを作る
Accessを起動すると「新しいデータベース」か「テンプレートから作成」を選ぶ画面が開きます。手順は次のとおりです。
「空のデータベース」をクリックし、ファイル名と保存場所を指定して「作成」ボタンを押すだけで.accdbファイルができます。作成と同時に「テーブル1」というテーブルがデータシートビューで開くので、そのまま設計を始められます。
テンプレート(連絡先・資産管理・学生など)を使う方法もあります。テンプレートはテーブル・フォーム・クエリがあらかじめ入った雛形で、使い方を学ぶ目的には向いています。ただし実務の業務に合わせてカスタマイズしようとすると、既存の設計を壊さないよう慎重に手を入れる必要があり、慣れないうちはかえって難しいこともあります。目的にあわせて選んでください。
ステップ2:テーブルを設計する
テーブルはAccessの核心です。ここで手を抜くと後の全工程に影響します。
設計ビュー(デザインビュー)に切り替えると、フィールド名・データ型・説明を1行ずつ入力する画面になります。Microsoftの公式ドキュメント(Introduction to data types and field properties)に記載されている主なデータ型は次のとおりです。
| データ型 | 用途 | 容量の目安 |
|---|---|---|
| 短いテキスト(Short Text) | 氏名・住所・コードなど255字以内の文字列 | 最大255字 |
| 長いテキスト(Long Text) | メモ・備考など長い文章 | 約1GB(UI入力は65,535字) |
| 数値(Number) | 金額以外の数値(個数・距離など) | 1・2・4・8・12・16バイト(Field Sizeにより異なる) |
| 通貨(Currency) | 金額(小数点以下4桁まで精度保持) | 8バイト |
| 日付/時刻(Date/Time) | 日付・時刻(西暦100〜9999年対応) | 8バイト |
| オートナンバー(AutoNumber) | レコード追加のたびに自動採番する識別番号 | 4バイト(通常) |
| はい/いいえ(Yes/No) | チェックボックスなど二値のフラグ | 1バイト |
| 添付ファイル(Attachment) | 画像・ドキュメントをレコードに紐付ける | .accdb形式のみ対応 |
フィールドごとにデータ型を選んだら、主キーを設定します。主キーはレコードを一意に識別するフィールドで、通常はオートナンバー型の「ID」フィールドを1列目に置くのが定番です。主キーにはAccessが自動でインデックスを作成するため、後のクエリや結合が速くなります。
テーブルは「1種類の情報につき1テーブル」が基本です。例えば顧客情報と受注履歴を1つのテーブルに混在させると、顧客名が変わるたびに何行も更新しなければならなくなります。テーブルの正規化の考え方についてはAccessのテーブル設計と正規化の基本で詳しく扱っています。
ステップ3:リレーションシップを設定する
複数のテーブルを作ったら、テーブル間のつながり(リレーションシップ)を定義します。Accessの公式ドキュメント(Learn the structure of an Access database)では、「一方のテーブルの固有IDフィールドをもう一方のテーブルに追加してリレーションシップを定義することで、関連レコードを照合できる」と説明されています。
操作の手順は、「データベースツール」タブの「リレーションシップ」ボタンを押してウィンドウを開き、つなぎたいテーブルを追加して、主キーから外部キーへドラッグします。なお、参照整合性を設定するには結合するフィールドのデータ型が互換している必要があります(オートナンバー型の主キーに対する外部キーは、通常は数値型の長整数にします)。「参照整合性を適用する」にチェックを入れると、親テーブルに存在しないIDを子テーブルに入力しようとしたときにAccessがエラーで止めてくれます。これが設定されていないと、孤立したデータが積み重なって後から整理が大変になります。
リレーションシップの概念に慣れていない場合は、管理台帳の具体例を通じて学ぶと理解しやすいです。Accessで管理台帳を作るでは、顧客と対応履歴のテーブル分割を例にとって解説しています。
ステップ4・5:クエリとフォームを作る
テーブルとリレーションシップが固まったら、クエリとフォームを組み合わせて「使える画面」を作ります。
クエリのうち最も基本的な「選択クエリ」は、テーブルから条件に合うデータだけを取り出す仕組みです。「作成」タブの「クエリウィザード」から始めると、使うテーブルとフィールドを選ぶだけで選択クエリが完成します。クエリを使ったデータ絞り込みの基礎はAccessのクエリとはで入門解説しています。
フォームはデータを画面から入力・閲覧するためのUIです。Microsoftの公式ドキュメント(Create a query, form, or report in Access)によると、「作成」タブの「フォーム」ボタンを1回押すだけでナビゲーションウィンドウで選択中のテーブル・クエリのフォームが即座に生成されます。より細かく作りたい場合はフォームウィザードを使うと、フィールドの選択・レイアウト・スタイルを順番に選んでいくだけで完成します。
テーブルに直接入力することも技術的には可能ですが、実務ではフォームを通じた入力を推奨します。コンボボックスで入力値を選択肢に限定したり、必須入力チェックをかけたりといった対策を取りやすいためです。フォームとレポートの役割の詳細はAccessのフォームとレポートとはで解説しています。
ステップ6:レポートを作る
レポートはデータを印刷・帳票出力するためのオブジェクトです。フォームと似ていますが、目的は「画面での入力」ではなく「整形した印刷出力」にあります。
Microsoftの公式ドキュメント(Create a simple report)によると、レポートの作成にはいくつかの方法があります。最も手軽なのは「レポートツール」で、選択中のテーブル・クエリのすべてのフィールドを含むレポートを即座に作成します。グループ化・並べ替え・集計を細かく設定したい場合は「レポートウィザード」を使うと、画面の質問に答えるだけで整形されたレポートが出来上がります。
レポートにはレポートビュー・レイアウトビュー・印刷プレビュー・デザインビューの4種類があります。印刷結果に近い確認は印刷プレビューで行い、レイアウトやデザインの変更はレイアウトビューまたはデザインビューで行います。WordやExcelへのエクスポートやメールへの添付も可能です。ただし、会社の定型フォームに合わせた厳密な帳票(請求書のフォーマットなど)を再現しようとすると、余白・フォント・罫線の調整に工数がかかることがあります。
マクロとVBAには後から触れれば十分
Accessにはマクロ(GUIで操作を選ぶ自動化)とVBA(コードを書くプログラミング)の機能もあります。ただし、テーブル・クエリ・フォーム・レポートの基本を組む段階では必須ではありません。ボタンで処理を動かしたい、複雑な条件の自動化を入れたい、という場面になって初めて必要になります。最初はシンプルな構成から始めて、必要に応じて足していく進め方が現実的です。マクロとVBAの使い分けについてはAccessのマクロとVBAの違いと使い分けで整理しています。
Accessで作ったシステムの限界と移行の目安
Accessは少人数・中小規模の業務データベースとして手軽に作れる点が強みですが、使い続ける中でいくつかの限界が出てきます。
Microsoftの公式仕様ページ(Access specifications)に明記されているように、.accdbファイルのサイズ上限は2GBです。データの蓄積やファイルへの画像添付が続くと、想定より早くこの上限に近づく場合があります。また、同時利用ユーザー数は仕様上255とされていますが、ファイル共有型の構成では接続数が増えると動作が重くなりやすく、これは設計による安定稼働の保証値ではありません。
設計資料や引き継ぎ体制がない場合、担当者の異動・退職後に誰も構造を把握できなくなる「属人化」のリスクもあります。当社の移行支援では、担当者不在によって保守が難しくなった事例を複数確認しています。
現在のAccessが解析・移行できる状態かどうかを確かめたい場合は、無料の解析可否チェックから当社への確認依頼ができます。
よくある質問
Q. テーブルの設計ビューとデータシートビューの違いは何ですか?
設計ビュー(デザインビュー)はフィールド名・データ型・主キーなどテーブルの「構造」を定義する画面です。データシートビューは実際のレコードを行・列で表示して入力・編集できる画面で、Excelのシートに近い見た目です。テーブルを新規作成するときはデザインビューで構造を決めてから、データシートビューに切り替えてデータを入力するのが基本的な流れです。
Q. ExcelのシートをそのままAccessにインポートできますか?
インポート機能はありますが、いくつか注意が必要です。インポートウィザードの中で「先頭行をフィールド名として使う」かどうかを指定できるため、見出し行が整っているかどうかを事前に確認しておくことが大切です。また、Accessはインポート時に先頭8行のデータを見て列のデータ型を自動推定します。列に複数の種類の値が混在している場合(数字と文字が混在など)、型の推定が意図と異なり、互換性のない値が空白や誤変換になることがあります。取り込み後はインポート完了画面に表示されるエラーログテーブルの有無を確認してください。繰り返し項目が横に並んでいたりする場合は、テーブルの分割を含めた再設計が必要です。ExcelとAccessの発想の違いについてはAccessとExcelの違いで整理しています。
Q. フォームはテーブルと1対1で作らないといけませんか?
必須ではありません。クエリを元にしてフォームを作ることもでき、複数のテーブルからフィールドを組み合わせて1つの画面で表示できます。ただし集計クエリや一部の結合クエリは更新できないため、そのようなクエリをベースにしたフォームは読み取り専用になります。データ入力も行う場合は、更新可能なクエリを選ぶか、テーブルを直接ベースにすることが必要です。また、フォームの中に別のフォーム(サブフォーム)を入れることで、親子関係のあるデータ(例:受注と受注明細)を1画面で扱うことも可能です。
Q. Accessで作ったシステムを人数が増えた後も使い続けられますか?
対応できる範囲はあります。ファイルをフロントエンド(フォーム・クエリ)とバックエンド(テーブル)に分ける構成(スプリット)にすると、同時利用時の安定性がやや改善します。ただしこれはAccessの根本的な制約(ファイル共有型)を解消するものではなく、同時利用者が増えるにつれて性能は低下します。当社の移行支援の経験では、同時利用者が10人を超えてきた場合や2GBに近づいてきた場合をSQL Serverへのバックエンド移行を検討し始める目安にしていますが、適切な判断時期はネットワーク環境・設計・データ量によって異なります。
触れないAccessが「診断できるか」だけ、確かめませんか。
顧客データは送信不要。発注の義務もありません。
約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません