AccessHeaderImage.png

データ加工ツールとしてのMS-Access

エクセルのデータの取り込み

エクセルのデータをそのまま取り込む

幸いにもMS-Accessに取り込みたいデータの書式でExcelにデータが保存されている場合(なんの加工も必要としない場合)は標準機能にて取り込むだけです。

取り込むファイルの指定
「Excelワークシートのインポート」を選択します。
外部データ -> Excel を選択する。
データのインポート元もしくはリンク元を指定する。

import1.PNG

取り込むシートを指定します。
1つのExcelに複数のシートが含まれている場合は標準では一番左のシートが選択されていますが、インポートしたいシートをここで指定します。
シート名で識別ができない場合でもそれぞれのシートの中身が表示されるのでわかりやすいと思います。

import2.PNG

Excelのデータの先頭行は項目名が入力されている場合、「先頭行をフィールド名として使う」にチェックが入っていることを確認します。
import3.PNG

ここでよくあるのが、Excel は同じフィールド名が出てきてもお構いなしですが、MS-Accessはそうはいきません。もし同じフィールド名が存在したときは、MS-Accessが自動で重複したフィール名は「フィールド1」「フィールド2」と仮置きしてくれます。律儀にExcelに戻って修正する必要はありません。
一応お断りのメッセージが出るのでOKを押すと、どの項目のフィールド名が変更されたかを見ることができるので問題なければ次へ。

import4.PNG
律儀に確認のダイアログ

import5.PNG

自動補完の結果を表示するので問題なければ次へ。すべてのフィールド名はこの次のダイアログで修正ができるのでご心配なく。

データ型の指定
データ型とは、その項目に入るデータがテキスト(文字)なのか数字なのか日付なのか等を指定します。
数字の場合は整数型、長整数型、単精度浮動小数点型、倍精度浮動小数点型などがありますが、整数型でも-32,768 ~ 32,767が扱えるのですが、取り込むデータがこの範囲を超える場合は長整数型を選択します。また、例えば取り扱い製品が液体の場合など小数点が発生する可能性がある場合は浮動小数点型を指定します。データサイズと処理速度は並べた順番に大きくなっていくため、不必要なデータ型を選ばない方がいいのですが、怪しいときは悩まず安全な方をとります。この考え方に従い、MS-Accessは数値に見えるフィールドは倍精度浮動小数型が標準となっています。数千万とか億など、極端にレコード数が多くなければ必要に応じてサイズを節約するくらいの気持ちで良いかと思います。

import6.PNG

他にも通貨型などあり、必要に応じて選択します。
通貨も少数を扱えるのですが、浮動小数の方が処理効率が良くなっています。
これは浮動小数型は2進演算ロジックで、通貨型は10進演算ロジックであることが効率の違いとなっています。
2進演算ロジックは0.1の10倍は1とイコールではありません(表示は1になるけど、1と比較するとイコールではない)。詳しい説明は省きますが、浮動小数型の計算で思いがけない結果にはまったら一度通貨型を試してください。

Excelで日付だったデータは一見おかしな値になっている様に見えますが、データ型が日付型になっていれば大丈夫です。コンピューターが内部的に持っている数値が見えてしまっているのですが、MS-Accessのテーブルを見るとExcelと同様に日付が表示されます。

import7.PNG

主キーの指定
次に主キーを指定するのですが、主キーとして指定した項目の値と同一の値はそテーブルの中に複数存在できません。例えば顧客マスターの中の顧客コードなどがこれに相当します。
MS-Accessは標準で「主キーを自動的に設定する」となっており、取り込むExcelデータの他に勝手に項目を追加します。
例えば顧客マスターを取り込む場合、顧客CDで識別するのですが、ここでは各地域でたまたま同じ顧客CDを使用している可能性もあるため、地域と顧客CDのセットでグローバル顧客マスタの主キーとする予定です。このように複数項目で主キーを指定する場合、ここでは「主キーを設定しない」を選択し、データの取り込み後に主キーを設定します。
今回のように他の地域のデータを取り込むような場合はどのようなデータが含まれているかわからないこともあり、基本的に主キーは設定しない方が作業はしやすくなります。

import9.PNG

テーブルの結合をする場合など、意図しないデータ重複があると思わぬ結果となる場合があるため、主キーを設定することが望ましいのですが、私は結合後のデータの行数をチェックして想定通りのデータかどうかを確認しています。
一応補足しますが、本来は想定したデータ構造に合わせて主キー(一般にはプライマリーキーと言います)を設定すべきです。これはテーブルにセットするデータが想定通りであることをRDBMS(リレーショナル・データ・ベース・マネジメント・システム)に保証させるためです。セットされるデータが想定通りか常にプログラムでチェックしていたら大変な手間です。このような基本的なチェックはデータベースのシステム(RDBMS)に任せるべきです。
今回のようなデータ加工は、各地域からどのようなデータが来るか不明確なため、初期状態から主キーがあるとインポートエラーが多発して作業が進められなくなりがちです。一度全部取り込んでから想定と乖離がないか、行数や合計をチェックしていくことになります。

データベースのテーブル名の指定
MS-Accessは標準で、エクセルファイル名をテーブル名として表示します。これを適切なテーブル名にします。
ここではまず地域別に一旦そのまま取り込みを行うため、データ種別の前に地域名を追加します。
後にクエリーを作成していきますが、クエリーかテーブルかを明確に識別するためにテーブルの頭に “T_”と追加しておきます。
import10.PNG
ここではまだ「おまじない」程度と考えてください。

LinkIcon前のページへ


|1|2|3|4|

LINK