トップ > Access2007目次 > 5) データのインポート
1)2)3)4)5)6)7)8)9)10)11)12)13)

5) データのインポート

実は、このサークルの会員、100名ほどいるんですよ。
Accessにはデータを作り出す能力はありませんからね。会員の情報はこつこつ手入力していくしかありません。

ただ、今回の場合、実は既に、Excelで作った名簿があるんですよ。これを何とか活用できないかな・・・と思ってるんです。
そこでこのページでは、「会員テーブル」に外部からデータを取り込む作業についてお話します。

 

1インポートとリンク

実は、外部からデータを取ってくる方法は、いくつかあるんですよ。
外部のデータも、いろいろな種類に対応しています。

深く理解しようとすると、これまた奥が深いので、今日のところは、

外部データの活用方法には、 「インポート」と「リンク」の二種類がある。

ということだけ理解してください。 で、とどのつまり今日は「インポート」を使います。
インポート
外部のデータを「会員管理.accdb」ファイルの中にまるまる取り込みます。
インポートした後は「会員テーブル」のレコードとなり、先ほど「会員テーブル」に手入力した織田さんのレコードと同じように並びます。
私個人的には、コッチのほうがお奨めです。よほどの理由がない限りは、外部データはテーブル内にインポートして使ったほうが、管理がラクです。

リンク
データは取り込まず、外部のデータの場所(保存先のフォルダやファイル名など)を記憶しておく方法。Accessから見ると、Accessのテーブルとして扱われるので、ちゃんとリンクされていればインポートとあんまり変わらないです。
別の部署のAccessデータベースやExcelファイルからデータを取る場合などは、こっちの方法を選択することになるでしょう。

図1:インポートとリンク(ホントに?)

 

2インポートするファイルの準備 (サンプルデータをご用意してますので、ダウンロードしてください)

今回は、これからこの「会員管理.accdb」をメインで使っていく予定なので、今まで使っていたExcelの名簿のデータをまるまる取り込んでしまおうと思います。こういうときは、インポートしますよ。
インポートするExcelファイルですが、えーと、こちらで用意したものがあるんですけど、お使いになります?
え?当たり前だろうって?ははは、まあ、落ち着いて。
Excel2007で作った名簿、以下からダウンロードして使ってください。

◆Excel2007で作った会員管理名簿 

<ダウンロードについて>
今、このページをご覧いただいているブラウザの種類にもよりますが、おそらく、上のリンクをクリックすると、別ウィンドウが開き、中にExcelのシートが表示されると思います。そのシートを「名前をつけて保存」してください。
保存先は、マイドキュメントとか、Adminのドキュメントとか、あるいは今作ってる「会員管理.accdb」と同じフォルダとか、わかりやすいところに。
やり方は・・・これはAccessの操作ではないので・・・・詳しい説明は勘弁してください・・・・。
決して珍しい作業ではないので、 がんばってみてください。

 

3Excelデータのインポート

操作中 インポートするExcelファイルの準備ができたら、「会員テーブル」はいったん閉じておきます。

テーブルが開いていると、そこにデータをインポートすることはできないので、必ず閉じてくださいね。
図3:データのインポートの前に「会員テーブル」は閉じとくこと。

 

何もかも閉じて、何にも開いていない状態になります。
必要なときに、左端のナビゲーションウィンドウからオブジェクトをダブルクリックすれば、また開きます。

まあ、この辺の操作は後でまた確認しましょう。
とにかく、データのインポートをするときは必ず、データをインポートしたいテーブルは閉じておきます。
全部閉じて右の図のような状態にしておいてから作業を開始すれば間違いないですよ。
図4:オブジェクトを何にも開いていない状態。のっぺりした感じ。

 

では、ここからが本番です。
操作中 タブメニュー「外部データ」の中の「Excel」をクリックします。
今回はExcelのデータをインポートしますからね。
図5:「外部データ」の中の「Excel」をクリックだ

 

外部データの取り込みを実行するためのウィザードみたいなのが起動して、右図のような画面が出ます。

何をどうやってインポートするか、最初に指定するんですが、今回は、既にある「会員テーブル」にデータを追加します。 さっき、1件レコード入力しましたからね。

操作中 真ん中の「レコードのコピーを次のテーブルに追加する」をクリックして、「会員テーブル」を選択してください。
っていっても、まだテーブル1個しかないから、自動的に「会員テーブル」って出てると思いますけども。
図6:「会員テーブル」にレコードを追加する方向で

 

さあーなんかいろいろ、出てきましたよ。
でも、今回はもう、簡単にインポートできるようにExcelのファイルを作ってあるので、何にもしなくてもいいようになってるはずです。 シートも1つしか作ってないし。
シートが複数ある場合は、どのシートのデータをインポートするか選択する必要がありますが、今回は特に何もしなくてもOKのはずです。
下半分はデータの内容が表示されてます。どんな会員がいるのか、眺めておいてください。

操作中 で、画面の内容を一通り観察し終えたら、特に何もせずに「次へ」ボタンをクリックします。
図7:インポートウィザード(1) 今回は特に何もしなくていい

 

操作中 次のページも、今回のインポート作業では、特に何もやることはありません。
「次へ」をクリックして進みましょう。
定型入力ウィザード(3)
図8:インポートウィザード(2) ここも何もしなくていい

 

操作中 ここも、今回は特に何も必要ありません。何もせず「次へ」ボタンをクリックします。
いちおう、各フィールドをクリックしてみて、画面の上部分にフィールドのデータ型などが表示されることを確認しておいてください。
定型入力ウィザード(3)
図9:インポートウィザード(3) ここも何もしないで次だ

 

油断しているとうっかりすっ飛ばしちゃうのが以下(図10)の画面。
主キーというものの設定画面です。ここをすっ飛ばしちゃうと、Accessが勝手にひとつフィールドを作ってしまうので、しっかり目を光らせていないといけません。
まあ、作ってしまっても使わなければいいだけのことかもしれませんので、そんな目の敵にしなくてもいいんですけどね。
主キーとは、そのテーブルの中で、各レコードそれぞれが持つ重複しない値のことを言います。レコードたちが付ける”ゼッケン”みたいなものですね。
主キーの役割というものはなかなか理解が難しくて、Accessを長年使っている人でもあいまいな理解にとどめている場合が多いので、今日はとにかく先に進みましょう。あいまいな理解も時には必要ですよね。
で、今回は既に「会員番号」というフィールドがあって、このフィールドが各レコードの”ゼッケン”の役を務めてますので、わざわざ主キーは設けません。

操作中 「主キーを設定しない」を選択します。
定型入力ウィザード(3)
図10:今日は主キーを設定しないぞ

 

以上で作業は完了です。

操作中 最後の画面も特に変更は必要ないので、右下の「完了」ボタンをクリックすればOK。
「完了」ボタンをクリックすると、インポートが始まります。

さあ、ちゃんとインポートできるかな・・・。

定型入力ウィザード(3)
図11 インポートウィザード最後の画面。この後、インポートが始まる。

 

このタイミングで「こんなエラーが出るけど?」という人は、「会員テーブル」、開いたままじゃありませんか? んもーだから言ったじゃないですカー。閉じてって。
「会員テーブル」を閉じて、もう一度最初からやりなおしてください。

エラー
図12 「会員テーブル」開いたまんまじゃない?
最後に、今回やったインポート作業を、今後も繰り返し実行する可能性があるなら、手順を保存しておけますよ、という感じの画面が出てきます。

操作中 まあ、今回はこれ一回っきりなので、保存しないで「閉じる」をクリックしましょう。

定型入力ウィザード(3)
図14:保存しないので、何にもしないで「閉じる」をクリック

 

ワーイワーイ。 データが入りました。

今回の練習用に作ったExcelのファイルなので、特に問題ないと思いますが、いちおう、データの内容などチェックしておいてください。

実際には、インポートしたいテーブルにぴったりあったExcelファイルばかりではないでしょうし、インポートする前にあれこれ調整しないとならなかったり、面倒なことも多いはずですが、とにかくまあ、データのインポート作業は、こんな感じです。


定型入力ウィザード(3)
図15:ヤッター!

 

4レコードセレクタ

この辺で、データシートの見方をひとつ、ご紹介しておきますね。
注目していただきたいのは、各レコードの左端です。
レコードセレクタは、そのレコード全体を選択するためにあるもので、コレをクリックすると、「1レコード分選択」したことになります。

レコードセレクタは、そのレコードが今どういう状態にあるかによって、ちょっぴり表示の感じが変わります。これもちょっと理解しておくとよいですよ。
右図は、その一例です。
図16 レコードセレクタとは?

 

5その他 テーブルの話あれこれ

以下はテーブルに関する余談です。
Accessで言うところの「表」とは、Excelとか、普段私たちが意識している表とは少し意味合いが違うかもよ、という話を何度かいたしました。データベースの「表」・・・つまり、「テーブル」とは、罫線を縦横に引いた表ではなく、フィールドとレコードの交点にデータが入り、意味のある並び方をしているもののことを言います。
言葉にすれば、暗記できる程度の短文ですが、これをきちんと理解できている人、Accessの熟練者でも案外少ないんです。
特に、Access2007では、今使っている「データシート」の機能がたくさん追加されたため、ますます理解しにくくなっているんですが・・・。とにかく、Excelのワークシートとは異なるものだと、しっかり心に留めておいてください。

データシートで、「0003と0004の会員の間に、1件データを追加したいんだけど」と思っても、できません。
フィールドの追加・・・つまり、列の追加は可能ですが、行の追加は、一番下の*マークの行で行います。視覚的に見て、好きなところに行を追加するのではありません。
「え?なんで?」とおっしゃる方も多いんですが、データベースの操作に慣れている人からすると、何で疑問に思うのか不思議だったりして、こういうことの納得いく説明がすごく難しいんですよ。。。基本的に、テーブルには行の並び順というものはありません。データは、テーブルの中にぐちゃぐちゃになっていて、データシートで開いているから整列して見えているだけなんです。

さらに、この「会員テーブル」は、「会員番号」というフィールドの値を中心として、データが順々に入ってくる仕組みになっています。つまり、「会員名」フィールドと「会員番号=0004」の交点に「丸丸」という値が入っている、ということなんです。
で、データシートを開くと、「会員番号」順にレコードが並んで見えている、というわけです。

Excel のシートと同じに考えてしまうと、この部分が理解できず、「Accessって不便。使いにくいし役に立たない」ってことになって二度と起動しなくなる、という方も多いんで、あんまり難しく考えずに慣れていってもらえればと思うんですが・・・。
とにかく、このテーブルには、好きなようにデータを並べて表示しているのではなく、「会員番号順に、各項目のデータが表示される」ということ、心に留めておいてくださいね。

このページのまとめなど

  • 外部のデータを利用する方法には、「インポート」と「リンク」がある。このページでは「インポート」の手順を解説。
  • 各レコードの右側にある「レコードセレクタ」。レコードのデータを書き換えているときはどんな表示になる?
  • レコードが何件か入ったら・・・改めて「表」の定義を整理しておこう。Excelのシートと混同してはなりませんぞ。
作成日:2008-12-29

コピーライト