Posted by Andrew Stegmaier
9 月 25 日

この記事は Access チームのプログラムマネージャー、Gary Devendorf が執筆しました。添付されている動画で説明を行なっているのは、同じくプログラムマネージャーの Doug Taylor です。

Access 2013 を利用する最大のメリットは、データ中心のビジネスアプリケーションを Web 上に構築できることにあります。多くの場合、普段よく利用するデータ、たとえば顧客リスト、製品一覧表、従来の Access データベースなどは、既にローカルに存在しています。それでは、どのようにすればそれらのデータを Access Web アプリケーションに取り込めるのでしょうか。レコードを 1 つずつコピーしようとすれば、明らかにいくら時間があっても足りません。データ インポート機能が時間節約に大いに貢献できるのは、まさにこういう場面です。

★Movie (http://www.youtube.com/watch?v=938t0ZL8ogk&feature=player_embedded)がここに入ります★

Access 2013 の Web データベースでは、さまざまなソースからデータをインポートする機能がサポートされています。ご使用の Access の Web データベースを開き、リボンの [テーブル] をクリックして、オプションをチェックしてみてください。そこでは、[既存のソースからテーブルを作成する] の下から、Excel、SQL Server、SharePoint、および Access の旧バージョンなど、さまざまなオプションを選択できることにお気付きになるでしょう。

 

データのインポートは、1 つのソースから別の場所にデータをコピーするだけの単純な処理ではありません。たとえば、既存の Access データベースからのインポートでは、テーブル定義、リレーションシップ、およびビューに関するデータなども取り込めまれるため、インポートされたデータをすぐにインタラクティブに活用できます。

Excel ファイルやテキスト ファイルのように、既存データのソースが構造化されていないデータの場合、Access を活用すればデータのクリーンアップと正規化が楽になります。次の図のような Excel のスプレッドシートをインポートするとします。

 

列の 1 つは、国立公園の一覧を表しています。もう 1 つの列は、それらの公園がある州の一覧を表しています。ここで、州の名前に繰り返しが多いことに注目してください。それぞれの州にある公園をひと目で把握したい場合などに、スプレッドシートを使用するだけでは、さまざまな問題が起きる可能性があります。このデータをさらに構造化すれば、州の名前のスペルを間違えるといったデータ入力エラーの防止にも役立つはずです。入力ミスなどがあれば、州ごとに公園を分析するのも困難になります。

この例では、インポートの手順を 2 つの段階に分けて実行します。まず、新しい空の Access のデスクトップ データベースを作成します。そこに、Excel のデータをインポートし、テーブル正規化ウィザードを使用してクリーンアップを行い、構造を追加することにします。次に、そのテーブルを Access 2013 の Web データベースにインポートします(このように 2 段階の手順を踏む理由は、現在のところ、テーブル正規化ウィザードがデスクトップデータベースでしか利用できないためです。クリーンアップを行わずに、単にデータを Excel からコピーするだけであれば、直接 Web アプリケーションにインポートできたでしょう)。

 

まず最初に、Access 2013 を開き、[空のデスクトップデータベース] をクリックして新しいデスクトップ データベースを作成します。リボンから [外部データ] タブを選択し、[イ���ポートとリンク] セクションの [Excel] をクリックします。Access に Excel ファイルがある場所を指定して、ソース データを新しいテーブルにインポートします。

 

次のダイアログには、Excel スプレッドシートのデータが表示されます。また、先頭行に列見出しが含まれるかどうかをここで指定します。先頭行を "Park" または "State" などの列見出しにする場合には、Access はそれらをテーブルのフィールド名として使用します。今回の例では、列見出しにはしません。[次へ] をクリックします。

 

インポート ウィザードの指示に従って、インポートするスプレッドシートの部分を指定します。ここでは、データは Sheet1 にしかないため、何もせずに [次へ] をクリックします。

 

下の図でウィザードによって列に "Field1" と "Field2" という名前が付けられており、Field1 のデータ型として [短いテキスト] が割り当てられています。Access は先頭の 10 行の内容を検査して、適切なデータ型を自動的に判定しようと試みます。ここで割り当てられたデータ型は変更することができます。また、インデックスとして指定することも、あるいは列のインポートそのものをスキップすることもできます。次の列を強調表示して、オプションを確認または変更します。終わったら、[次へ] をクリックします。

 

フィールドが定義されたので、主キーの処理方法の選択画面が表示されます。キーという概念に馴染みのない方でも心配はありません。デフォルトの選択 ([主キーを自動的に設定する]) にしておけば、ほとんどの場合それで大丈夫です。

 

インポート ウィザードの最後の画面では、新しいテーブルの名前を指定します。また、データをクリーンアップしていくつかの構造を追加するために、テーブル正規化ウィザードを実行します。

 

ウィザードには、この処理の内容の理解に役立つダイアログがいくつか用意されています。説明を読みながら、下の画面が表示されるまで [次へ] をクリックしてください。

 

[ウィザードを使う] を選択すると、データをクリーンアップ方法に関して、Access による自動処理に任せることを受け入れたことになります。[次へ] をクリックします。Access はどのように処理したのでしょうか。確認してみましょう。

 

今回の例では、Access はデータを 2 つのテーブルに分解して、両者の間にリレーションシップを作成することを提案しています。1 つのテーブルには、州の一覧が含まれます。もう 1 つのテーブルには、公園の一覧が含まれています。テーブルの 2 番目の列では、州テーブルが参照されています。ここで、リレーションシップの右側には "1" が表示されており、左側には無限大のシンボルが表示されています。つまり、これはテーブル間には「一対多」のリレーションシップが成立しているため、1 つの州名に対して、複数の公園名を関連付けることができるという意味です。

最終的なデータ チェックが行われると、エラーが表示されるはずです。元のスプレッドシートでは、1 つの州に公園がいくつも存在する場合があるため、リストには同じ州名が複数回入力されていました。その中には、Arkansas が誤って "-kansaw" と入力されてしまったデータが少なくとも1 カ所はあるようです。ウィザードにより、エラー処理の方法を求めるメッセージが表示されます。

 

これがウィザードの最後の画面です。ここでは、テーブルを結合するクエリを作成するかどうかを選択します。

 

ウィザードを最後まで実行すると、3 つのテーブルと 1 つのクエリで構成された Access のデスクトップ データベースが作成されます。インポートされた元のテーブルの名前は変更され、末尾に "_OLD" が付与されています。新しく作成されたクエリは元のテーブル名 "MyNewTable" で参照されます (クエリはテーブルとほぼ同じように使用できます)。元のデータを分割して作成されたテーブル (Parks と State) も表示されています。State テーブルには、それぞれの州にある国立公園を参照するリンクが格納されています。

 

最後のステップは、このデスクトップ データベースを保存して、それを新しい Access 2013 の Web アプリケーションにインポートすることです。[ファイル] > [新規] > [カスタム Web アプリケーション] を開きます。アプリケーションを作成する場所を選択し、[作成] をクリックします。リボンの [テーブル] ボタンをクリックし、[既存のデータソースからテーブルを作成する] の下から [Access] を選択します。これで、先ほど作成したデスクトップデータベースをインポートできます。今回は、デスクトップ データベースのテーブル正規化ウィザードを活用できたため、単に直接 Web アプリケーションにインポートした場合と比べれば、データがはるかにクリアで構造化されています。

 

インポート機能を利用すれば、構造化されてるか否かにかかわりなく外部データを取り込んで活用できます。構造は必要に応じて後から追加することもできます。正規性や参照整合性といった、リレーショナルデータベースに関わる複雑な問題についての知識は必要ありません。生成されたビューはすばやくカスタマイズできますし、そのまま利用することも可能です。データをこれまでの置き場所から Access 2013 の Web アプリケーションに移動することによって、使いやすいインターフェイスと、ビルトインされたシンプルな共有機能を活用できるようになります。

ぜひプレビュー版をお試しになって、ご自身の目でお確かめください。