Excelで管理しているリストが増えてくると、 「どこに何を入れたか分からない」「同じ情報を何度も入力してしまう」 そんな小さなストレスが積み重なっていきます。
Accessの“テーブル”は、そんな悩みを解消するためのデータの保管場所です。 まずはこのテーブルを理解するだけで、Accessがぐっと扱いやすくなります。
この記事では、
- Accessのテーブルとは何か
- Excelとどう違うのか
- 一番簡単なテーブルの作り方
について、 初心者でも迷わないようにやさしく解説します。
Accessのテーブルとは?
Accessにおけるテーブルとは、ユーザーが入力したデータやAccess内部で更新されたデータを保管するための箱です。
例えば、商品在庫を管理するAccessにおいて、在庫情報を保管しておく箱がテーブルです。
Excelで商品在庫を管理している場合は、商品在庫を記録しているシートがデータを保管する箱になります。Accessではデータを保管する箱がテーブルということになります。
Excelのシートとの違い
一見AccessのテーブルとExcelのシートは列と行からなり、同じような見た目をしています。ではExcelと違い、Accessのテーブルは何が便利なのか?以下で説明します。
- 列ごとにデータ型を指定できる
Excelは列ごとに表示形式の指定ができますが、入力する値について制御することが簡単にはできません。Accessのテーブルは、列ごとにデータ型を決めることで意図しないデータの入力を避けることができ、集計等でのエラーを防ぐことができます。 - ユーザーによる誤操作を防ぐ
Accessのフォームを利用すれば、テーブル内のデータを直接触る必要がなくなり、ユーザーによる誤った削除や変更を防ぐことができます。Excelでもフォームは存在しますが、管理表を触ることができないようにするためには、シートの保護や非表示など、細かい設定が必要になるため手間がかかります。 - テーブル同士の紐づけ
Excelは1つの表に全部のデータを入れる必要がありますが、Accessはテーブルを分けて管理することができ、テーブル間はIDでつなぎます。そうすることで、1つのテーブルのデータを変更した際に、それに紐づく別テーブルのデータを同時に更新することができ、データの矛盾を防ぐことができます。
テーブルはどのようなデータを保管するのに適しているか?
実務での例として次のようなデータの保管に適しています。
- 顧客リスト
顧客情報の登録や削除 - 商品マスタ
商品の追加や削除、情報更新など - 注文履歴
顧客リストにある顧客がこれまで注文した商品の履歴を保管
顧客リストと注文履歴をIDで紐づけしておけば、顧客の注文履歴を確認できるAccessのシステムが作成できます。Excelの表のように、必要な情報をソートしたりフィルターをかけるなどして、注文履歴を抽出する必要がありません。
テーブルを作る前に知っておくべき3つの概念
AccessのテーブルはExcelの表に似ていますが、実は作る前に理解しておくべき重要な考え方があります。
この3つを知っておくと、後の作業がスムーズになり、失敗しにくくなります。
- フィールド(列)
Excelでいう列のことです。Accessのテーブルではひとつひとつのフィールドにデータ型を指定します。データ型は数値、文字、日付などあり、入力するユーザーが迷うことなく値を入力し、整合性を保つことができます。 - レコード(行)
Excelでいう行のことです。1行に1件分の情報が格納されます。 - 主キー(ID)
レコードを一意に識別するためのフィールドです。主キーに設定したIDは重複や空にすることができません。データの重複を防いだり、テーブル同士を紐づけるための項目として使われます。
Accessテーブルの作り方
テーブルは、構造から作成して後からデータを入れる方法と、あらかじめExcelでデータを作成しておき、Accessテーブルにインポートする方法があります。
1から作成する場合
実際にテーブルを作成していきます。私が作成している手順なので、後からご自身の作りやすいように変更していくといいです。
[作成メニュー]から、[テーブルデザイン]をクリックします。

フィールド名とデータ型を設定します。
一番上のフィールドは主キーになるので、フィールド名は一般的にID(または○○ID)などにしておきます。主キーは重複を防ぐために、オートナンバー型にします。オートナンバー型はレコードが追加されるたびに自動で採番してくれる型です。

主キーを設定します。主キーの設定方法は、フィールドを右クリックして[主キー]をクリックするだけで設定完了です。どんなテーブルでも、とりあえずは主キーを設定しておいてください。後々機能追加などで、もしかしたら必要になる可能性があるからです。(実体験)

キーボードでCtrl + Sを押し保存します。顧客に関する情報を保管するテーブルなので、顧客リストとしました。

左のナビゲーションウィンドウのテーブル一覧に顧客リストが追加されました。

テーブルをダブルクリックすると、各フィールドに値を入れることができます。
主キーは入力しなくても自動で採番されます、どんどん値を追加していきましょう。

顧客情報についてはランダムに生成できるこちらのサイトを利用しました。
Excelをインポートする場合
Excel表を準備します。
すでにExcelで管理している場合は、その表を少し手直しすることでそのままテーブルに変換してAccessで運用することができます。
- 列や行の結合は解除してシンプルな表の形式にする
- 列ごとにデータ型を統一する(整数で入力すべき列に文字が入っていないかなど)
- 列名がフィールド名になるので必要であれば修正する
- シート名がテーブル名になるので必要であれば修正する
以下の表でいうと[住所]の列が結合されているため、シンプルな列に修正します。

こんな感じです。赤字部分が修正した箇所です。インポート時に主キーを作成するため、不要な列[連番]は列ごと削除しておきます。([連番]を消さずにインポートして主キーとして設定もできます)入会日もテーブルに作成したいので列追加しています。

シート名はテーブル名の[顧客リスト]に変更しておきます。
これをインポートするだけです。
[外部データ]メニューの[新しいデータソース]→[ファイルから]→[Excel]をクリックします。
インポートウィザードが開きます。

参照ボタンから、インポートファイルを選びます。[OK]ボタンを押します。

[先頭行をフィールド名として使う]にチェックを入れます。[次へ]ボタンを押します。

フィールドごとにフィールド名やデータ型の修正があれば行います。[次へ]ボタンを押します。

[主キーを自動的に設定する]を選択します。[次へ]ボタンを押します。

インポートしたExcelのシート名がテーブル名として設定されます。テーブル名の変更があれば変更します。[完了]ボタンをクリックするとインポート完了します。

次の画面のインポート操作の保存はしなくていいので、[閉じる]ボタンを押します。

顧客リストのテーブルが追加されました。ダブルクリックをするとテーブル内のデータを確認できます。

1から作成するか、もともと管理していたExcel表などを修正してインポートするかはその時の状況によって選択してください。
データ型の選び方
よく使うデータ型について、どんなデータに使用するか説明します。
短いテキスト: 名前や住所など、255文字で収まるデータに向いています。
長いテキスト: 255文字以上の長文や長いURLやファイルパスなどに向いています。
数値: 数量や金額などに使用します。電話番号などハイフン(-)が入っているものは数値として指定できません。
日付/時刻: 日付に使用します。
Yes/No: はい/いいえ、ON/OFF、要否など2択で選択するチャックボックスなどの項目に使用します。
オートナンバー: 主キーに使用します。前行の値から+1した値が自動で入力されます。
まとめ
Accessのテーブルについてお伝えしました。
Accessについての記事はほかにも追加予定です。

