AccessへExcelデータをインポートする方法をお探しですね。

広告

ExcelのデータをAccessに取り込む方法をやさしく解説

Excelで作った売上表や顧客リストをAccessで使いたいとき、データをコピーして貼り付けるよりも「インポート」や「リンク」という機能を使ったほうが安全で確実です。

AccessにはExcelファイルを取り込むための便利なウィザード(案内画面)が用意されていて、新しくテーブルを作ったり、すでにあるテーブルにデータを追加したり、Excelファイルを参照するだけのリンクテーブルを作ったりできます。

この記事では、ExcelデータをAccessに取り込む方法を、準備から実際の操作、失敗しないためのコツまで、初めての人にも分かりやすく説明していきます。

1. 「インポート」と「リンク」って何が違うの?

AccessへExcelデータを取り込む方法には、大きく分けて「インポート」と「リンク」の2つがあります。

まずはこの2つの違いを理解しておきましょう。

**インポート**は、ExcelのデータをAccessのテーブルとしてコピーする方法です。

取り込んだ後は、データがAccess側に保存されます。

だから元のExcelファイルを変更しても、Access内のデータは自動では変わりません。

Excelで受け取ったデータをAccessでしっかり管理したいとき、クエリやフォーム、レポートで本格的に使いたいときはインポートが向いています。

**リンク**は、Access内にデータをコピーせず、Excelファイルを外部から参照する方法です。

リンクテーブルを作ると、Access上ではテーブルのように見えますが、実際のデータはExcelファイル側にあります。

だからExcelの内容が更新されれば、Accessから見える内容も基本的に変わります。

毎月決まった形式のExcelファイルを別の部署が更新していて、Accessでは集計や確認だけをしたい、というときに便利です。

ただし、Excelファイルを移動したりファイル名を変えたりすると、リンクが切れてしまうので注意が必要です。

どちらを選べばいいかは、Accessでデータを「管理したいのか」「参照したいだけなのか」で決めると分かりやすいです。

Access側でメインのデータとして扱って、後から更新したり加工したりしたいならインポートがおすすめです。

Excelを元データとして残しておいて、Accessでは読み込みや集計を中心に使うならリンクが便利です。

目的に合わせて使い分けることで、ExcelとAccessを効率よく連携できます。

なお、データを確実に取り込みたいときは、必ず「外部データ」タブからウィザードを使うのが基本です。

2. Excelデータを取り込む前の準備が大事

実は、Accessへのインポートで失敗する原因の多くは、Access側の操作ミスではなく、**Excelファイルの整え方**にあります。

Accessは表形式のデータを前提にしているので、Excelシートにタイトル行や空白行、結合セル、メモ書き、途中の小計行などが混ざっていると、正しく読み込めないことがあります。

理想的なのは、**1行目に項目名、2行目以降に同じ種類のデータが並んでいる形**です。

不要な空白列や空白行は削除して、取り込みたい範囲だけをはっきりさせておきましょう。

特に気をつけたいのが、**列ごとのデータの種類(データ型)**です。

Accessは、Excelの最初のほうのデータを見て、「これは数値かな」「これは文字かな」「日付かな」と判断します。

たとえば商品コードの列に「001」「002」のような値が入っていると、Accessが数値だと判断して先頭のゼロが消えてしまうことがあります。

また、最初の数行が数字だけで、途中から「A100」のような文字を含む値が出てくると、エラーになったり空白になったりします。

商品コードや電話番号、郵便番号のように、計算に使わない数字は、Excel側で**文字列**として設定しておくと安全です。

すでにあるテーブルにデータを追加したいときは、さらに注意が必要です。

Access側のテーブルには、フィールド名やデータ型、主キー(重複しない目印)などの設定があります。

Excel側の列名がAccess側のフィールド名と合っていなかったり、日付のフィールドに文字が混ざっていたり、主キーが重複していたりすると、追加に失敗します。

新しくテーブルを作るよりも、既存のテーブルに追加するほうが条件が厳しいので、実務では一度Excelデータを仮のテーブルに取り込んでから、後でクエリを使って本テーブルに反映する方法もよく使われます。

**取り込む前に確認したいポイント:**

– 1行目に項目名があって、列名が分かりやすく整理されているか
– 結合セル、空白行、不要なタイトル行、小計行が入っていないか
– 各列のデータ型が統一されていて、数値と文字列が混ざっていないか
– 既存テーブルに追加する場合、フィールド名や主キーの条件に合っているか

3. ExcelデータをAccessにインポートする手順

それでは、実際にExcelデータをAccessに取り込む手順を見ていきましょう。

まず、Accessデータベースを開いた状態で、リボンの**「外部データ」タブ**をクリックします。

Microsoft 365やAccess 2019以降では、「新しいデータソース」→「ファイルから」→「Excel」という流れになることがあります。

Access 2016などでは、「外部データ」タブに直接「Excel」ボタンが表示される場合もあります。

バージョンによって表示が少し違いますが、基本的には「外部データ」からExcelファイルを選んで、ウィザードの案内に沿って進めていく操作です。

ウィザードでは、まず取り込みたいExcelファイルを参照ボタンで選びます。

その後、保存方法を選びます:

– **新しいテーブルにインポートする**:新しくAccessテーブルを作りたいとき
– **既存のテーブルに追加する**:すでにあるテーブルに行を追加したいとき
– **リンクテーブルを作成する**:Excelファイルを外部から参照したいとき

ここで選択を間違えると、目的と違う形でデータが作られてしまうので、事前にどうしたいかを決めておきましょう。

新しいテーブルにインポートする場合は、Excelブック内のどのワークシートを取り込むかを選びます。

複数のシートがあるブックでも、一度に取り込めるのは基本的に1つのシートです。

複数シートを取り込みたいときは、シートごとに同じ操作を繰り返します。

次に「**先頭行をフィールド名として使う**」にチェックを入れるかを選びます。

通常は1行目に項目名を設定しておいて、このチェックを入れることでAccessのフィールド名として利用します。

その後、各列のデータ型を確認して、必要なら修正します。

主キーの設定画面では、次の3つから選べます:

– Accessに自動で主キーを設定させる
– 既存のフィールドを主キーにする
– 主キーを設定しない

通常のテーブルでは主キーを設定するのが基本ですが、Excelから取り込んだ一時データを後で加工するだけなら、主キーを設定しないこともあります。

ただし、正式なマスターテーブルや取引テーブルとして使う場合は、レコードを一意に識別できる主キーを用意したほうが安全です。

最後にテーブル名を入力して完了すると、Access内にExcelデータが取り込まれます。

完了後は必ずデータシートビューで件数や値を確認して、デザインビューでデータ型もチェックしましょう。

**既存テーブルに追加する場合**は、最初の選択画面で「レコードのコピーを次のテーブルに追加する」を選んで、追加先のテーブルを指定します。

この方法では、Excel側の列がAccess側のフィールドに正しく対応している必要があります。

列名がフィールド名と一致していれば順番が違っても取り込める場合がありますが、データ型や必須入力の条件が合わないとエラーになります。

また、主キーや「重複なし」のインデックスが設定されているフィールドに重複値があると取り込めません。

既存テーブルへの追加は便利ですが、失敗したときの原因を見つけるのが難しいこともあるので、大事なデータベースでは事前にバックアップを取ってから実行することをおすすめします。

4. ExcelデータをAccessにリンクする方法と失敗しないコツ

ExcelデータをAccessにリンクする場合も、入口はインポートと同じく「外部データ」タブです。

Excelファイルを選んだ後、保存方法で「**リンクテーブルを作成してソースデータにリンクする**」を選びます。

その後、リンク対象のワークシートを選んで、先頭行をフィールド名として使うかを指定します。

完了すると、Accessのナビゲーションウィンドウにリンクテーブルが作成されます。

普通のテーブルと同じような感覚で開いたり、クエリの元データとして使ったりできます。

Excelファイルを定期的に更新する運用では、Accessへ毎回インポートし直す手間を省ける点が大きなメリットです。

ただし、リンクテーブルはAccess内にデータをコピーしているわけではないので、**元のExcelファイルの状態に強く影響されます**。

ファイル名を変えたり、保存場所を移動したり、シート名を変えたりすると、Accessから参照できなくなることがあります。

また、複数人で同じExcelファイルを編集している場合、更新のタイミングやファイルロックの影響を受けることもあります。

安定して運用するには、リンク元のExcelファイルを共有フォルダーなど決まった場所に置いて、ファイル名やシート構成をむやみに変えないルールが必要です。

Access側で本格的な更新処理を行う場合は、リンクではなくインポートしてから処理するほうが向いているケースもあります。

よくあるトラブルと対処法

インポートやリンクで「#Num!」や空白、エラーが出る場合は、Excel側のデータ型が混在していたり、エラー値が含まれていたりすることが原因になっていることが多いです。

Excelセルに「#DIV/0!」「#N/A」などのエラー値があると、Accessへ正しく取り込めないことがあります。

また、日付に見える値が実は文字列だったり、数値列の途中に記号付きの文字が入っていたりすると、Accessが適切なデータ型を判断できません。

取り込み結果に違和感がある場合は、Accessのエラーログテーブルやインポート後のテーブルを確認して、どの列で問題が起きているかを特定しましょう。

**よくあるトラブルと対処の方向性:**

– **商品コードや郵便番号の先頭ゼロが消える**
→Excel側で文字列に設定してから取り込む

– **日付が正しく入らない**
→Excel側で日付形式を統一して、文字列の日付を修正する

– **一部の値が空白(Null)になる**
→列内に数値と文字列が混在していないか確認する

– **既存テーブルへの追加に失敗する**
→主キーの重複、必須フィールド、データ型の不一致を確認する

– **リンク切れが起きる**
→元ファイルの保存場所、ファイル名、シート名を確認する

まとめ

AccessへExcelデータを取り込む作業は、操作そのものよりも「**どの形で取り込むか**」と「**取り込み前にデータを整えること**」が何より大切です。

新しいテーブルにインポートすれば、ExcelデータをAccess内でしっかり管理できるようになります。

既存のテーブルに追加すれば、外部から受け取ったExcelデータを既存のデータベースに組み込めます。

リンクテーブルを使えば、Excelを元データとして残したままAccessで集計や参照ができます。

目的に合わせて方法を選んで、取り込んだ後は件数、データ型、欠損値、エラー値をしっかり確認することで、Accessでのデータ活用を安定させることができます。

最初は少し難しく感じるかもしれませんが、慣れてくるとExcelとAccessを組み合わせた便利な使い方ができるようになりますよ。

広告