<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--外部データの活用
  1 2 3 4 5



「Excelで作ったデータを、Accessに取り込みたい」なんてこと、あります?
えっ?あるんですか?!うそ!ほんとに!!!

・・・いえ・・・単にちょっと驚いてみただけです。
そういうこともありますよね。
今日は、どんなデータを取り込むことができるのか、その際の注意点とかいろいろ載せていこうと思ってます。
「小技」っていうか、だらーっと解説を載せることになっちゃうんで、ちょっとばかり文章が多くなっちゃいますが・・・。
でも、きっと、いつかお役にたつことじゃないかな、って思うんで、よかったら目を通していってください。


はっきり申し上げて、Access以外の部分のお話、ってとこがたくさんあるので、まずは概略掴んでおいた方がいいかもしれないですね。
特に、パソコンのデータなんてものは、そのデータ作るのに使用したソフトウェアが異なれば、データの形式とかもぜんぜん違うわけですし、わたしたちが画面で見ている数字や文字の並びはあくまでも表示上のもので、コンピュータ内部での扱いが異なっていることもあるわけです。そういうところを十分に理解して、用意されている機能をうまく使って効率よく作業を進めていってください。

まず、Accessの構造をおさらいしましょう。
あるないは別にして、ひとつのMDBファイルの中には、いく種類かの「オブジェクト」がありますよね。
Accessのように、ひとつのファイルの中にデータベース環境を作ってくれちゃってると、いまいち感覚が掴みにくくなっちゃうんですが、コンピュータの中のもろもろの仕組みというのは「データ」と「プログラム」に分けられます。「データ」とはコンピュータ内に蓄積される情報すべてを指し、「プログラム」はそれらの情報を使って動作します。「情報」と「動き」ということになりますね。

で、こういうのをいろいろ作ったり考えたりするのがすごく大変なんで、AccessではMDBっていうファイルの中にテーブルとかクエリとか各種オブジェクトを作る、っていう操作で、いつの間にやら「データ」と「プログラム」の関係を作ってる、って感じになります。
「データ」と「プログラム」の区別を、ほんの少し意識していくとよいかもしれないですね。

MDBの中の各オブジェクトで、厳密に「データ」と言えるのは「テーブル」のみです。後はどちらかというと「仕組み/動き」の部分にあたりますね。まあ、フォームやレポートそのものを「プログラム」と分類してよいかどうかはちょっとなんとも言えないですが、少なくとも「データ」ではありません。
「クエリ」は別名「論理テーブル」などと言い、実質上はテーブルとおなじ扱いをしますので「データ」みたいですが、結局「テーブル」を基準にして作りますよね。なので・・・状況によりけりですが、今回のような「外部データを取り込む」といったお話の場合は、とにかく「テーブル」を主体に考えると考えてください。「取り込む」先は「テーブル」です。ただ、「外部へデータを吐き出す」場合は、テーブルのほかにクエリも対象になりますね。

各オブジェクトの役割は、みなさん把握してらっしゃいますか?


「レポートのデータをExcelに持っていきたいんですけど」なんて思っちゃってる人は、ちょっと考え方を整理してくださいね。
レポートやフォームは、データは持ってません。必ず、そのレポートやフォームにデータを表示するためのテーブルやクエリ(レコードソース)があるはずです。他のソフトウェアのデータとやり取りをする対象は、基本的に「テーブル」です。まずはこれを頭に置いていただいて、どんなことが可能なのか見ていきましょう。

外部データとやり取りをするときの代表的な機能に「インポート」「エクスポート」「リンク」の3つがあります。
まずは「インポート」「エクスポート」をキーワードに、ヘルプを開いてみてください。注意点などもいろいろ載ってますから、必ず参照してくださいね。


インポート:
テキスト ファイル、ワークシート、またはデータベースのテーブルのデータを Access
のテーブルにコピーすることです。インポートしたデータを使ってテーブルを新規作成したり、同じデータ構造の既存のテーブルにデータを追加することができます。また、Access
データベースまたは Access プロジェクトからデータベース オブジェクトをインポートすることもできます。

リンク:
Access アプリケーションから他のアプリケーションのデータへの接続を作成し、両方のアプリケーションでデータを編集できるようにすることです。また、他の
Access データベースのテーブルとの間にリンクを設定し、他のデータベースを開かずに、カレント
データベースからそのテーブルのデータを操作することもできます。リンクは、前のバージョンでアタッチと呼ばれていた機能に相当します。

エクスポート:
他のデータベース、アプリケーション、またはプログラムで使用できるように、データおよびデータベース
オブジェクトを他のデータベース、スプレッドシート、またはファイル形式に出力することです。サポートされているさまざまなデータベース、プログラム、およびファイル形式にデータをエクスポートすることができます。

取り込むときに「インポート」か「リンク」という機能を使い、吐き出すときに「エクスポート」という機能を使います。
輸入したりつなげたり輸出したりするんですね。


インポートとリンクは具体的にどう違うのか、というトコなんですけども・・・。

みなさんはBBB.mdbを作ってる最中だったとします。
顧客テーブルとか商品マスターとか、以前作ったことのあるテーブルやらなにやらが、このmdbの中でも必要になってきました。
そこで、インポートかリンクをしようと思います。

テーブル1をインポートしたとします。インポートしたので、BBB.mdb内にテーブル1というテーブルができました。
テーブル1とテーブル1は、今のところまったく同じ内容ですけれど、まったく独立した別々の道を歩みます。
このふたつのテーブルの間に、今後なんの関連性もつながりも発生しません。
テーブル1に10件データが追加されたとしても、テーブル1の内容は何も変わりません。

テーブル2をリンクした場合、BBB.mdb内にテーブル2という名前のテーブルができることはできるのですが、テーブル2の内容は、その都度テーブル2を参照することになります。つまり、このふたつのテーブルはずっとずっとこれからもつながって生きていくのです。
テーブル2に10件データが追加されたら、テーブル2を開いたときに新規追加の10件も参照することができます。

リンクする場合は、その都度よそ様のテーブルを見るわけですんで、多少負荷がかかるようになりますね。
用途に合わせて、リンクすべきか、インポートすべきか、使い分けていくとよいでしょう。



インポート、リンクという機能を使って、取り込むことのできるものは以下のようになってます。

■インポートまたはリンクが可能なもの

 
データ ソース サポートするバージョンまたはファイル形式
Access データベース 2.0、7.0/95、8.0/97、9.0/2000
Access プロジェクト 9.0/2000
dBASE III、III+、IV、および 5 7 (Linking (read/write) Borland Database Engine 4.x 以降が必要)
Paradox、Paradox for Windows 3.x、4.x、および 5.08.0 (リンク (読み取り/書き込み) の場合は Borland Database Engine 4.x 以降が必要)
Excel ワークシート 3.0、4.0、5.0、7.0、8.0、および 9.0/2000
Lotus 1-2-3 ワークシート (リンクの場合は読み取り専用) .wks、.wk1、.wk3、および .wk4
Exchange すべてのバージョン
区切り記号付きテキスト ファイル すべての文字セット
固定長テキスト ファイル すべての文字セット
HTML 1.0 (リストの場合)
2.0、3.x (テーブルまたはリストの場合)
SQL テーブル、Visual FoxPro、アプリケーションまたは ODBC プロトコルをサポートするデータベースからのデータ Visual FoxPro 2.x、3.0、5.0、または 6.x (インポートのみ)サポートされているODBC ドライバの更新情報は、 Microsoft サポート技術情報を参照してください。

エクスポートという機能を使って、吐き出すことができるデータ形式は、こんな感じです。



■Access からエクスポート可能なデータのファイル形式


 
アプリケーション バージョンまたはサポートしているファイル形式
Access データベース 2.0、7.0/95、8.0/97、9.0/2000
Access プロジェクト 2000
dBASE III、III+、IV、および 5
7 (Borland Database Engine 4.x以降が必要)
Paradox、Paradox for Windows 3.x、4.x、および 5.0
8.0 (Borland Database Engine 4.x 以降が必要)
Excel 3.0、4.0、5.0、7.0、8.0、および 9.0/2000
Word、リッチ テキスト 形式  
Lotus 1-2-3 .wk1 および .wk3 ファイル形式
区切り記号付きテキスト ファイル すべての文字セット
固定長テキスト ファイル すべての文字セット
HTML または IDC/HTX 形式 1.0 (リストの場合)
2.0、3.x、および 4.x (テーブルまたはリストの場合)
Microsoft Active Server Pages  
SQL テーブル、Visual FoxPro、または ODBC プロトコルをサポートするアプリケーションおよびデータベース Visual FoxPro 3.0、5.0、および 6.x
サポートされる ODBC ドライバの最新情報については、Microsoft サポート技術情報を参照してください。




Accessのテーブルまたはクエリの抽出結果を、上記のような形式のファイルにできちゃったりする、っていうわけです。
インポートやリンクの場合は、基本的に、ほとんどの場合が「テーブル」を主体に考えます。
他のMDB・・・つまり、Accessで作ったファイルの場合、テーブル以外にも、クエリやフォームなど各種オブジェクトもインポートしてくることができます(クエリやフォームなどをはインポートのみ。リンクできるのはテーブルだけ)

まあ・・・上の表を全部丸覚えするっていうのも意味ないと思いますんで、皆さんそれぞれ「これは必要かもしれないなぁ」と思う製品のとこを中心に確認していくようにしてください。

前に作ったMDBの中のレポートとまったくおなじデザインのレポートを作りたい
前に作ったMDBの中のクエリとまったくおなじデザインのクエリを作りたい
とか、そんな感じのときに、いちいちまた作るのがめんどくさいので、そのMDBからそのものをインポートしてきて、ちょっと手直しをして使う、なんていうときに、クエリやフォームやレポートのインポートなんていうことをやりますね。まあ、1から作り直した方が手っ取り早いときもありますから、ケースバイケースですけどね。
後は、テキストファイルをテーブルにインポートしてきたり、Excelのシートをテーブルにインポートしたり、OracleやSQLServerなど他のデータベースのテーブルやビューをインポートしてきたりリンクして使ったり・・・・。そういうケースが多いかもしれないですね。