ACCESS csvファイルのインポート方法

csvファイルのインポート方法

ACCESSに他のデータベースやシステムからデータを取り込みたい時によく使われるのがcsvファイルの取り込みです。

今回は、ACCESSにcsvファイルをインポートする方法をご説明します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

サンプルデータ

今回はインポート用に下記のサンプルデータを用意しました。

売上日、顧客名、売上金額という比較的シンプルなcsvファイルです。

こちらをACCESSへインポートしていきましょう。

新規テーブルへのインポート処理

csvファイルをインポートするには、ウィザードを使用します。
ファイルメニューから外部データ→テキストファイルを選択しましょう。

csvファイルはExcelで開くことが多いので勘違いしがちですが、テキストファイルです。

すると、テキストファイルのインポートウィザードが立ち上がります。

csvファイルを上段で選択し、下段でデータベースへの保存方法を選択します。

保存方法は以下の3種類です。

現在のデータベースの新しいテーブルにソースデータをインポートする新規テーブルを作成して、インポートしたデータを格納します。
レコードのコピーを次のテーブルに追加する既存のテーブルにインポートしたデータを格納します。
リンクテーブルを作成してソースデータにリンクする実データをACCESSファイルに取り込まず、外部のファイルを参照してデータを扱えるようにします。

今回は「 現在のデータベースの新しいテーブルにソースデータをインポートする 」を選択して新規テーブルを作成します。

次に、データの区切り方を選択します。

ほとんどのcsvファイルは「,」などで区切られていると思いますので、「区切り記号付き」を選択します。

次の画面で、区切り記号を選択します。

基本はcsvファイルを読み取ってACCESSが自動で判別してくれます。
今回はカンマ区切りなので、「カンマ」を選択します。

また、ここで重要なのは「先頭行をフィールド名として使う」のチェックボックスです。
このチェックをつけることで、最初の行をフィールド名(見出し)として利用できます。

次の画面では、各フィールドごとのデータ型等の設定をします。

データ型(テキスト型、数値型、日付型、など)はデータを見てACCESSが自動判別してくれますが、たまに誤っている場合があります。
そうした際にこの画面でデータ型を修正できます。

また、インポートしないフィールドの除外もできます。

次に、主キーの設定をします。

主キーの設定は以下の3種類から選択できます。

主キーを自動的に設定する主キーのためのフィールドを新規追加します。
次のフィールドに主キーを設定する既存のフィールドを主キーとして扱います。
主キーを設定しない主キーを設定しません。

ACCESSのテーブルを作成する際には主キー設定は必須、というのが大原則です。
しかし、インポートデータに関してはインポート後に他のテーブルにコピーして使うことも多く、インポート段階で主キー設定しないことも実務では多々あります。

今回は主キーを設定しない、を選択します。

最後に、テーブル名を指定して、インポート処理は完了です。

インポートの完了メッセージが表示され、テーブルが作成されますので、内容を確認してみましょう。

無事にインポートができました。

テーブルをデザインビューで見てみると、各フィールドもきちんと設定できていることが分かります。

これで新規テーブルへのインポート処理は完了です。

既存テーブルへのインポート処理

次に、既存テーブルへのインポート処理についてご説明しましょう。

実は既存テーブルへのインポート処理はACCESSの中でも非常に難しい処理の一つです。

とはいっても操作自体は簡単です。
難しいのは、インポートを無事に完了できるまで、データの整備を行わなければいけない点です。

インポート時はデータベースの保存方法を選択する画面で、「レコードのコピーを次のテーブルに追加する」を選択して、インポート先のテーブルを指定します。

以降は先ほどと同じ処理でインポートができます。

インポートエラー処理

これで正常にインポートが終われば問題ないのですが、インポート処理はなかなかうまくいかないことが多いです。

インポート時に以下のような画面が表示されたら、インポートが一部失敗しています。

こういった場合は、どこがエラーになったかを確認してインポートデータを修正する必要があります。
インポートが失敗する原因のほとんどは、データ型の誤りです。

数値型のフィールドにテキストが入っていたり、短いテキスト型のフィールドに長いテキストが入っていると、インポート時にデータをテーブルに格納できずエラーになります。

まずはインポート後のテーブルをみて、おかしなデータがないか確認しましょう。
場合によってはインポートエラーテーブルが作成されますので、そういった場合はインポートエラーテーブルを参照すればどのレコードがエラーだったのかわかります。

以下にインポート後のテーブルの例を示します。

この場合は、金額が入っていないレコードが一つありますね。

インポートした元のデータを見てみましょう。

すると、金額欄に数値ではなくアルファベットが入っていました。

これがインポートエラーの原因ですね。
ここを数値に直し、先ほどインポートしたデータをACCESSから削除して再度インポートしなおせば正常にインポート処理が終わります。

このように、インポート処理はエラーが発生した際のその原因究明と、インポート処理のやり直しを繰り返す必要があるので、なかなか手のかかる作業です。
何度もデータの削除とインポートを繰り返すうちにデータが二重に入ってしまう、ということの無いよう注意して作業ください。

Excelからのインポートとの違い

同じような表形式のデータの場合、ExcelファイルにしてACCESSにインポートするか、csvファイルにしてインポートするか悩むことがあるかもしれません。

どちらでも対応できる場合はcsvファイルをお勧めします。

Excelファイルは、普通にファイルを開けただけでは分からない空白列や空白行ができていることがあり、これがACCESSへのインポート時にエラーとなってうまくいかないことが多々あります。

csvファイルの方は不要なデータがない状態で作られますので、インポート元としてこちらの方が圧倒的に扱いやすいです。

以上、csvファイルのインポート方法についてご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス紹介

最後までお読みいただき、ありがとうございました。