<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>MS-Accessを使いこなすために・・
  (←別ウィンドウでサブメニュー)



11.データのインポート

さてさて、みんな毎日よく働きます。
休みはありません。365日休まず毎日よく働いてます・・・。

早いものでこのシステムを使い始めて2年。たくさんのデータが入力され・・・え?そんなにたくさん入力できない?
んもー。早く入力してくださいよ。ほらほら、2年経ちましたよ。

・・・・しょうがないですねぇ。といっても、まあ、今日は練習ですからね。
実際にほんとにこんな社員がいるわけじゃないし。。。
じゃあ、とっておきのデータをご提供しますよ。このデータを取り込んで、あたかも2年の月日が流れたかのように「ルビーの指輪」でも歌ってください。

おっと、取り込み方のお話をしながら、「データのインポート」っていうことについて触れていきましょうかね。
「インポート」というのは文字通り「輸入」ということで、他のデータベースやファイルからデータを取り込むことを言います。
「インポート」のほかに「リンク」という方法もあるのですが、こちらは、取り込むのではなく、直接データを使わせてもらえるような環境を作る、ということで、まさに「リンク」です。「インポート」は、取り込んできます。取り込んだ後は、取り込み元とのつながりは、なくなります。
まあ、「インポート」と「リンク」の違いは、ヘルプで確認しておいてください。ヘルプ以上の解説なんて、この世にはございませんよ。MS-Access作った会社が書いた解説ですからね。



どんなデータをインポートできるんでしょう。細かいことはヘルプで見ていただくとして・・・。
大まかに注意点などを含めてお話してみます。

まず、一番スタンダードなファイル3種を見てみましょう。
トップバッターはMS-Accessと同朋のMS-Excel
シートに入力された値をインポートするってケース、けっこうありそうです。

このとき注意が必要なのは、まずExcel側で、1行目にヘッダー(項目名とか)があるかないか、ってところです。
シートの左上のA1のセルの中の値から順々にテーブルに取り込みますので、余分な文字が入力されてるシートだと面倒が起こります。1行目は項目名。データは2行目から始まる。1つのシート全体がインポートされるので余分な入力はしない、罫線とか書式とかは反映されない・・・などなど、確認をして、取り込みやすい状態に作っておくのがポイントです。
まあ、シートの背景色とか文字の色とか大きさとか変えてても、テーブルに取り込んだらそんなのは無視されますからね。
なぜ?って思ってる人います???
だめですよ。データベースの世界で、文字の色だの大きさだの背景色だのを指定して見栄えをよくするのはフォームなりレポートなりの仕事です。テーブルの中には実データだけがたまっていくのであって、書式は別に考えますからね。

インポートするテーブルのデザインにあわせて(あるいはインポートした後MS-Access内で使うテーブルのレイアウトを意識して)シートを用意しておくようにしましょう。



MS-Ecxcel以外だと、たとえば「テキストファイル」なんてどうですかね。
いわゆる「文字だけで構成されたファイルで、メモ帳とかで開いてみることができるもの」ですね。

テキストファイルと一口に言ってもいろんな種類があるんですけど、ポイントとしては、フィールドとフィールドの区切れに、決められた記号を使ってるっていうところです。
代表的なのを見てみると、まず、タブ記号で区切られてるものとか、あります。

メモ帳だとちょっと分かりにくいですが・・・。
このファイル、↑ぴしっとそろってるのはタブ記号っていう記号が入ってるからなんですよ。
間に空白文字が入ってるわけじゃなくて、タブでそろってるんです。これもテキストファイルの一種ですね。
パソコンの世界ではこのタイプのテキストファイルが一般的かな・・・。
あと、カンマ記号を使ってるものとかありますね。
カンマで区切られてるテキストファイルを特別にCSVファイルなんて呼んだりします。

Excelや、テキストファイルのとき、少々頭の痛い問題が発生する可能性があるんですが・・・。
ほら、今回、「社員番号」って、「ゼロイチゼロゼロイチ」みたいな感じで、ゼロではじめてるじゃないですか。

これは、テキスト型のデータとして扱われた場合は、01001になりますが(つまり文字としてゼロイチゼロゼロイチと扱わせる場合)、数値型のデータとして扱わせると1001になります(つまり数値としてセンイチになるわけだ)。書式プロパティを活用すれば1001を01001と見せることは可能ですが、データとしてはセンイチです。左側のゼロはなくなります。これはMS-Accessに限ったことではなく、コンピュータ内部での「データ型の考え方」として共通のことなのです。

なので、たとえすべて数字で構成されている値だとしても、「社員番号」とか「郵便番号」とか「電話番号」とか「会員番号」とか「商品番号」なんかいうやつは、文字として扱うことが多いわけです。こういうのも、表計算ソフトのお手軽なデータの扱いに慣れてる方には意味がわかりにくいかもしれませんが、データベースを扱っていく人間が「01001って入力しても1001になってしまいます。どうしてなんでしょう?」なんて言っちゃうのは、かなり・・・きびしいです。「データ型」ってのはデータ処理の基本ですので、時間をかけてじっくり理解をしてってくださいね。

そんな感じで、どういう種類のファイルなのかはっきり分かっていれば、インポート操作は簡単です。
ファイルの種類によって、MS-Accessがうまい具合に取り込んでくれる「インポートウィザード」っていうのが勝手に仕事してくれますから、おまかせしましょう。
でも、どういう種類のファイルで、どういうふうにデータが入っているのかぜんぜんわからない状態では、保証の限りではありませんから、あらかじめ知っておく必要がありますよ。



では、挑戦してみましょう。
今回は、CSV形式のファイルをご用意しました。

こいつ↑をまず皆さんのPCにダウンロードしてください。
ブラウザの種類によって動作が異なるかもしれませんが・・・。
ダウンロードするダイアログボックスが出てきたら、適当なところにダウンロードしておいてください。
ブラウザの中にデータそのものが開いて出てきたら、メニューバーの[ファイル]→[名前をつけて保存]で、これまた適当なところに保存をしてください。

CSVファイルは、MS-ExcelがインストールされてるPCなら、アイコンがこんな形になって、

ダブルクリックするとMS-Excelが起動する仕組みになってます。
(今回は特に関係のないお話なんで余談として聞いてくださいませ)
多分、ここをご覧になってる方のほとんどが、MS-Excelもふつうにインストールしてお使いだと思いますので、アイコンの形はExcelっぽいのになってるんじゃないでしょうか。


で、これを、「労働テーブル」にインポートしようと思うわけなんですが、ここでまたまた注意です。
すでに、労働テーブルには何件かデータの入力してますよね。
ご用意したdatac.csvには、2002年1月1日から、2004年1月24日までのデータが入ってます。
労働テーブルの主キーは「社員番号」「労働日」です。
主キーはダブったらいけません

つまり、皆さんの労働テーブルに、すでに2002/1/1〜のデータが何件か、あるいは何十件か入力されているのだとしたら、このままインポートしたら主キーがダブっちゃって怒られてしまうのです。
このテーブルに、ゴジラさんの2002年1月1日の労働データが2件入ってきては、ならないのです。


そこで・・・。
せっかく入力したデータではありますが、一度ここで削除しましょう。いさぎよく。
「労働テーブル」を開いてください。
でもって、一番左上の、グレーのところをクリックしましょう。

これで「全レコードを選択」したことになります。
この状態で、Deleteキーを押しましょう。
あるいは、左上のグレーのところを右クリックして「レコードの削除」メニューを選んでもオッケーデス。

するとすると、なんかメッセージ出ますよね。

このメッセージに「はい」で応答すると、レコードは削除されます。
「いいえ」で応答すると、削除されません。いわゆる「確認メッセージ」ってやつですね・・・。

んじゃ、思い切って「はい」のボタンをクリックしましょう!

何にもなくなりました。
これで準備オッケー。テーブルのウィンドウを閉じましょう。



じゃ、いよいよ「インポート」作業です。まいりますよ。
メニューバーの「ファイル」→「外部データの取り込み」→「インポート」を選びます。

インポートするファイル(つまりdatac.csv)を選ぶダイアログボックスが出てきます。
下のほうの「ファイルの種類」を「テキストファイル」に変更し、datac.csvを選んでください。

え?見つからない?
知りませんよ〜。さっきどこのフォルダにダウンロードなさったんですか???

ファイル名を指定できたら、右端の「インポート」ボタンをクリックして先に進みましょう。
ファイルの種類にあわせて、「インポートウィザード」がうまいこと導いてくれるはずです。
自動的にウィザードが始まります。
インポートするファイルがMS-Excelのファイルならそれ用の画面になりますが、今回は「テキストファイル」なので、テキストファイル用のインポート画面になります。

多分、正しく認識されてると思いますので、チラッとだけ確認して、「次へ」進みましょう。

次の画面でも、「区切り記号はカンマ」ということで、ちゃんと認識してくれてると思います。
確認だけして、次へ進みましょう。


次の画面で、インポートする先の指定をします。
今回は「労働テーブル」にインポートするので、そのように指定をしましょう。

で、次へ進みますと、これでラストです。
「完了」のボタンをクリックすれば、インポートが始まります。

すると、

という完了メッセージが出るはずなんですけど・・・どうでしょう?

できましたか???
労働テーブル開いて、中身見てみてくださいね。



これが「データのインポート」という作業です。
MS-Access以外のソフトで作ったデータなんかを取り込みたいとき、必要になってくると思いますから、一度ヘルプを読んで、仕様などを確認しておくとよいですよ。

いちおう、「社員フォーム」も開いて見てみましょう。



あっ、そうか・・・。
コンボボックスの中身って、2002/3までしか入力してなかったな・・・。
これじゃ、3か月分しか見れないじゃないですか。ねえ。
どうしましょう・・・。