Webアプリ開発事始 第5回

WebアプリケーションとHTML(1)
~Microsoft OfficeでHTML文書を作る
長谷川裕行
有限会社 手國堂

AccessのHTML化機能

同じOfficeの仲間でも、AccessはWordやExcelとはちょっと違ったHTML化の機能を持っています。


- ファイルではなくオブジェクトを書き出す -

Accessにも、データをHTML化して書き出す機能が備わっています。但しAccessの場合は、データベースファイル(mdbファイル)全体ではなく、その中のテーブルやクエリ、フォームなど個々のオブジェクト単位でエクスポート(他形式に変換しての書き出し)することになります。

このときエクスポートされるのは、それぞれのオブジェクトが保存または管理しているデータ――レコードセットです。従って、テーブルやクエリを元に作成したフォームやレポートをHTML形式でエクスポートすると、フォームまたはレポートの元になったテーブルあるいはクエリのレコードセットが、HTMLのテーブル(データベースのテーブルではなく、<table>タグによる視覚的な表)として出力されることになります。


- 選択クエリをHTML化する -

AccessでのHTML出力機能を試してみましょう。サンプルに含まれているex05.mdbというデータベース・ファイルには、顧客と商品のマスターテーブルを参照して

  いつ どの顧客が どの商品を 何個発注したか

を記録するテーブル“t_受注”と、その内容を2つのマスターテーブルへの参照をたどって提示する選択クエリ“q_受注”が入っています。

選択クエリ“q_受注”の実体は、元になったテーブル“t_受注”の内容を具体的に表すレコードセットです。その中身は表1、デザインは図1のようになっています。

表1:受注情報を記録したテーブル“t_受注”を元に、具体的な内容を提示するクエリ“q_受注”のレコードセット

図1:選択クエリ“q_受注”のデザイン



- すべて表形式で書き出される -

各オブジェクトの内容をHTML文書として書き出すには、データベースウィンドウで目的のオブジェクトを選択し、メニューから「ファイル(F)」→「エクスポート(E)」を選択します。

ファイル保存のダイアログボックスがオープンするので、「ファイルの種類(T)」で「HTMLドキュメント(*.htm;*.html)」を選択し、ファイル名を入力して保存場所を指定し、[保存]をクリックすれば、HTMLファイルが生成されます。

リレーションを活かして具体的な内容まで提示するクエリ“q_受注”をHTML形式でエクスポートした“ex05q_受注.htm”を、Internet Explorerで表示させたものが画面6です。元になったテーブル“t_受注”をエクスポートした“ex05t_受注.htm”では、画面7のように顧客名や商品名が表示されません。

画面8は、クエリ“q_受注”を元にして作った単票形式の入力用フォーム“ex05f_受注.htm”ですが、Accessでデザインしたフォームの体裁ではなく、表形式として表示されます。先述したように、Accessでは、あくまで「オブジェクトの元になっているレコードセットの内容」をHTML化するためです。

元のフォーム(画面9)と見比べてください。


画面6:選択クエリ“q_受注”をエクスポートしたHTMLファイルをInternet Explorerで表示させた


画面7:リレーションを設定したテーブルをHTML化すると、テーブルの中身だけが表示される


画面8:フォームをHTML形式でエクスポートすると見栄えのよい表になるが、単票形式ではなく一覧表になってしまう


画面9:“ex05f_受注.htm”の元になったフォーム“f_受注”



- VBAでHTMLを書き出す -

Wordの文書をHTML化する機能は、WebアプリケーションではなくHTMLの編集機能だと言えます。Wordはワードプロセッサ――文書の作成を主体としたソフトであり、ExcelやAccessのように大量のデータをさばくためのアプリケーションではありません。

一方、ExcelやAccessは単一の目的を持った業務処理を作成できます。そうした業務処理の中で、処理結果をHTMLとして生成する機能を利用すれば、その業務処理は一応Webアプリケーション、またはそれに類するアプリケーションと呼べるでしょう。

例えば、ExcelでVBAを使ってワークシートの内容をHTML化し、それを特定のフォルダに書き出すようなプロシージャを作ることもできます。リスト3を参照してください。

リスト3:Excelワークシート上の特定の範囲を、HTMLファイルとして書き出すプロシージャ


- 目次 -
結果を表示するだけでもWebアプリ?
OfficeのデータをHTML化する
AccessのHTML化機能
ファイルではなくオブジェクトを書き出す
選択クエリをHTML化する
すべて表形式で書き出される
VBAでHTMLを書き出す
動的なHTMLファイルを作る(1)~ASP形式
動的なHTMLファイルを作る(2)~データアクセスページ

Copyright © GrapeCity inc. All rights reserved.