AccessでExcelのデータをインポートしてテーブルを作成する方法です。
操作は簡単なのですが、なかなか思うように行かないこともあります。
インポートウィザードを使用する方法と、Excelのデータをテーブルに直接貼り付ける方法を紹介します。
[外部データ]タブの[Excelスプレッドシートのインポート]
サンプルとして、以下のようなテーブルの元データとなるExcelのワークシートがあります。
Accessを起動して、[外部データ]タブの[インポートとリンク]グループにある[Excel]をクリックします。
ポップヒントには以下のように記されています。
Excel スプレッドシートのインポート
Microsoft Excelファイルからデータをインポートします。または、Microsoft Excelファイルのデータにリンクします。
[外部データの取り込み-Excelスプレッドシート]が表示されます。
参考Access2016以降では、[外部データ]タブの[インポートとリンク]グループにある[新しいデータソース]の[ファイル]-[Excel]から操作します。
以下の画像は、Access2019です。
保存方法とブックの指定
[外部データの取り込み-Excelスプレッドシート]が表示されます。
[現在のデータベースを新しいテーブルにソースデータをインポートする]を選択して、[参照]ボタンをクリックして、取り込みたいExcelブックを指定します。
ファイル名に目的のブック名が表示されたことを確認して[OK]ボタンをクリックします。
参考ここで[リンクテーブルを作成してソースデータにリンクする]を選択して、リンクテーブルとして取り込むこともできます。
また、既存のテーブルがあれば、テーブルを選択してデータを追加することもできます。
既存のテーブルがある場合は、以下のように選択肢が3つになります。(画像はWindows10、Access2013)
[レコードのコピーを次のテーブルに追加する]でプルダウンメニューから既存のテーブルを選択します。
ワークシートの指定
[スプレッドシートインポートウィザード]が表示されます。
[ワークシート]を選択すると、ワークシートの名前が表示されます。目的のワークシートを選択します。
Excelで名前を付けた範囲があれば、それを指定することもできます。[名前の付いた範囲]を選択すると、表示されます。
[次へ]ボタンをクリックします。
先頭行をフィールド名として使う
[先頭行をフィールド名として使う」のチェックボックスをオンにして、[次へ]をクリックします。
データ型の指定
ここで各フィールドのデータ型などを指定することができます。
指定しなくても自動的にデータ型は選択されます。
インポート後に変更することもできます。
[次へ]ボタンをクリックします。
主キーの設定
主キーの設定です。説明には、以下のように記されています。
新規テーブルには主キーを設定すると便利です。
主キーがあるとテーブルの各レコードを一意に識別できるので、目的のデータを見つけやすくなります。
ここでは、[主キーを自動的に設定する]を選択して[次へ]ボタンをクリックします。
主キーの変更は、インポート後のテーブルで行うこともできます。
テーブルの名前付け
テーブルの名前を付けます。
[完了]ボタンをクリックします。
インポート操作の保存
インポート操作は保存することができます。
保存しておくと、すぐにインポートを実行したり、ボタンに登録することができます。
毎月、インポートしなければならないような場合は、インポート操作を保存しておいた方が便利です。
参考インポート操作とエクスポート操作が保存できるようになったのは、Access2007からです。保存しておくと、マクロに登録することもできます。
以下の記事で解説しています。
インポート/エクスポート操作の保存(Access2007)
エクスポート操作を保存して、ボタンに登録する方法については、以下の記事で解説しています。
-
Excelへ出力(エクスポート)するコマンドボタンの作成
Access2010でテーブルやクエリをExcelへ出力するマクロを作成して、それをコマンドボタンに登録する方法です。 独立マクロを作成して ...
ここでは、オフにして[閉じる]ボタンをクリックします。
新規テーブルとしてAccessに取り込まれたExcelのデータです。
エラーが発生した場合の見直し点
操作は簡単なのですが、Excelのデータがしっかりしたデータでない場合は、エラーが出てうまく取り込めないことがあります。
ピボットテーブルの作成時の注意点をまとめたものですが、参考になると思います。
-
ピボットテーブルの作成・集計ができない(データベースにする準備)
Excelのテーブルやピボットテーブルは、データベースとしての管理や分析が簡単にできるようになる、とても便利な機能です。 でも、既存の表をテ ...
インポートができても、[インポートエラー]というテーブルが作成されることもあります。
セルの結合があったり、空白があったり、同じ列に文字列と数値が混在していたり、さまざまな原因があります。
以下のMicrosoftの解説を熟読してエラーの原因を探してみてください。
Excel ブックのデータのインポートとリンクの設定 - Access(Microsoft)
また、インポートできるデータにするためにデータのクレンジングが必要になることもあります。
既存のテーブルへインポートしたときのエラー
既存のテーブルにインポートすると、下のようなメッセージウィンドウが表示されることもあります。
テーブルに[主キー]が設定してある場合、このメッセージが表示されることがあります。
[主キー]が[オートナンバー型]であれば問題ないと思いますが、[数値型]や[テキスト型]などの場合はエラーになることがあります。
[主キー]を解除するとインポートできると思います。
リレーションシップが設定されている場合もエラーの原因になったりします。
すべてのデータをテーブルに追加できませんでした。
キー違反のため、0件のレコードが失われ、0件のレコードが削除されました。
参考[主キー]や[リレーションシップ]については、以下の記事で解説しています。
-
Accessテーブルの[主キー]の設定
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
-
リレーションシップの作成と参照整合性の設定
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
また、Excelのファイル名に[ドット](.)があると、エラーになってインポートできません。
-
[定義XMLによるスキーマの確認が失敗しました]のメッセージウィンドウ
Access2010で、Excelのワークシートからインポートしようと、[外部データ]タブの[インポートとリンク]グループにある[Excel ...
Excelのデータをコピーしてテーブルに貼り付け
Excelのデータがしっかりしていれば、もっと簡単に取り込むことができます。
Accessの[作成]タブの[テーブル]グループにある[テーブル]をクリックします。
テーブル
新しい空のテーブルを作成します。新しいテーブルで直接フィールドを定義することも、テーブルをデザインビューで開くこともできます。
[テーブル1]という名前のテーブルが作成されます。
インポートしたいExcelブックを起動して、データ範囲を選択してコピーします。
Accessテーブルの左上のグレイの箇所で右クリックして、ショートカットメニューから[貼り付け]をクリックします。
[レコードを貼り付けますか?]のメッセージウィンドウが表示されますので、[はい]をクリックします。
テーブルに名前を付けて[OK]ボタンをクリックします。
作成したテーブルをデザインビューで開くと、下のようになっています。
[NO]フィールドが[ID]になっています。
新規テーブルを作成した時に既定でフィールド名[ID](オートナンバー型)があるためです。
これで問題なければいいのですが、データを貼り付けると自動的に変換されてしまうこともあるので注意が必要です。
でも、簡単ですね。
1フィールドごと、ExcelからAccessのテーブルへコピー&ペーストを行うこともできます。
この場合、テーブルに[NO](テキスト型)フィールドを追加して、Excelから貼り付けることができます。
ちなみに下の画像は、インポートウィザードを使用して作成したテーブルをデザインビューで開いたところです。
[NO]フィールドがインポートされています。
参考Accessのテーブルをインポートする方法も解説しています。
-
テーブルやクエリなどのオブジェクトをインポート(外部データの取り込み)
Accessで作成したデータベースが複数あり、1つのデータベースに他のデータベースのテーブルやクエリなどのオブジェクトをインポートする方法で ...
SharePointリストもインポートできます。
-
SharePointリストとAccessテーブルの連携(エクスポートとインポート)
Accessのテーブルやクエリは、SharePointリストへエクスポートできます。データベース内のテーブルやクエリを選択して個別にエクスポ ...
テキストファイルをインポートする方法は、以下で解説しています。インポート設定を定義ファイルとして保存できるので便利です。
-
テキストファイルのデータをインポート(定義ファイルの保存も可能)
Accessでテキストファイルをインポートするには、[テキストインポートウィザード]を使用します。 ウィザードにしたがって、テキストファイル ...
AccessのデータをExcelへ取り込む方法については、以下の記事で解説しています。
-
AccessのテーブルやクエリのデータをExcelのワークシートに取り込む
Accessで作成されたテーブルやクエリのデータをExcelのワークシートに取り込む方法です。 Accessのデータを接続しないで取り込む方 ...