<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97超入門>Access のデータをブラウザで・・・ 
  Page1 Page2Page3Page4 > Page5 > Page6Page7



■Access のデータをブラウザで・・・#5

出てくるのはさっき開いてみたhtml とおんなじですけどね。
インターネットのふりをして表示してるんですよ。

不思議ですよねぇ。これがPWSのなせる技です。
動きのない読取専用のhtml だけだったら、ブラウザで表示するだけでいいんですけど・・・。
「まじ」ボタンクリックしたらmdbファイルの中にレコードを1件追加するなんて動きは、ブラウザとhtmlだけじゃどうしようもない。
idcとかCGIみたいな具体的な動きをするファイルを実行させてくれる環境を提供してくれるのがPWSです。

なんか入力してみましょう。「かせぎ」は数値型フィールドにしたので、必ず半角の数値で。あとはまあ適当に。
で、「まじ」のボタンをクリックしてみます。左側の方のボタンですね。

で、下のような画面が出てきて、テーブルの内容を表示してくれたらオッケー。実験成功です。

ちょっと見栄え悪いですけどね。。。上の二つのページの見栄えをもっとよくしたければ・・・そう。
html を勉強しないとなんないですね。色を変えたり、表の枠をもっと広げたり。そういうのはみんな。

じゃ、いったんブラウザ閉じましょうか。
あ、パソコンの性能がいいから、ブラウザあけたままでAccess起動してもぜんぜん大丈夫、って方は、空けたままでもよいです。


さあて、データ、たまってますかねぇ。見てみましょうか。ひっさしぶりにAccessを開きます。testmdb.mdb、開いてみましょう。

で、table1を開いてみると・・・。データ、入ってますでしょ?

つまりね。PWSの設定とODBCの設定と、HTXとIDCと、それらの入り口となるHTMLさえ、PWSで指定したフォルダ内(今回の実験ではc:\aaaaa\idc)の中に入れておけば、Accessのソフトそのものは導入してなくてもAccessのテーブルにデータの入力ができるわけです。
あ、もちろん、「ちゃんと入力されてるかなぁ」とかいって調べたいときはAccessがないと見れませんけど・・・。
開発とかテストするときは絶対いりますよね。

でも、ちゃんと動くことが確認できたら、Accessそのものはいらないんですね。
mdbファイルが閉じた状態でしかるべき場所にあれば、ODBC経由でPWSがうまいことidcファイルを動かしてくれて、値をmdbに書き込んでくれるわけです。
で、書き込まれた状態を拾ってhtxファイルに表示して、ブラウザに返すわけですね。

単純な処理をいくつか作ってみて、この辺のつながりが把握できるようになればしめたもんです。


ただし、ここでひとつご注意であります。

最初にも申し上げたように、この仕組みでは、Accessが長年大事に守ってきた「データの信頼性」みたいなものは期待できなくなります。
みなさんもインターネットの世界でいろんなHPとかご覧になってて、「なんか表示が遅いなぁ」と思って「中止ボタン」クリックしてやめたりしますよね。
あと、「戻る」ボタンで二つ三つ前に表示したページに戻ったり。

例えば、「商品の注文フォーム」みたいなのを作って、お客さんから商品の注文を受けようとしますね。
お客さんはフォームを開いて、なんか注文を入力してボタンをクリックします。でも、次の瞬間気が変わってブラウザの「中止」ボタンをクリックしたとします。
お客さんは買ってないつもりでも、データベースにはもうデータが書き込まれちゃったりしてるんです。ブラウザからそこまではわからないです。

電話回線でつないでる場合や、会社からLAN経由でつないでる場合や、ブラウザ側の環境もいろいろですよね。
ものすごく回線が込み合っていたり、会社の中のプロキシサーバーの負荷が上がってビジー状態だったりすると、すごく表示がおもーくなって、わけわからない状態になったりします。これはどうしようもないんですよね・・・。

その中で、二重に書き込みがなされないようにしたり、混みあってる場合の処理を別途考えたりしないとならないと思うんです。
商品の注文フォームなんか、わけわかんなくなっちゃったら会社の信用にかかわりますよね。

でも、その辺やるのは、Accessじゃなくて、idcファイルであり、htxファイルであるわけです。
そして、入力しようとしているお客さんサイドのネットワークの環境とか、その時間帯のネットの混み具合とか・・・
供給側ではどうしようもないことがいろいろ絡んでくるわけです。そんなの、どうしようもないですよね。

「途中でブラウザの中止ボタンをクリックしたのに、テーブルの中にレコードが書き込まれてしまってます。どうすれば書き込まれないようにできますか」

こういう疑問をもっちゃう人は・・・・・・言葉は悪いですが、やんない方がいいと思います。
なんかしら方法があるのかもしれないですが、こういう質問にお答えするのは、すごく怖いです。


じゃあ、次に、「AccessがWeb作成ウィザードとか言うので作ってくれる idc/htx ってのは、どんなもんか」ってところを見てみようと思います。

でも、あんまり期待しないでください。
今までいろいろメモ帳とかでごちょごちょ作っていただきましたけど、あれが最終的な形であって、Accessのウィザード使ったからといって特別作りやすくなるわけじゃないですからね。

んじゃ、とりあえず、下のようなテーブルの内容を表示するような仕組みを作りたいと思います。
え?さっきやったじゃんって?

違う違う。さっきのはhtml。こんどはidc/htx です。

見た目はおんなじようなもんですよ。でも、html は「そのときのテーブルの状態をそのままhtml 形式にする」だけ。

idc/htx は、「ブラウザで開いたときのテーブルの内容を表示する」のです。これを、この手の世界の用語で、静的動的といいます。

誰かが日々データの入力をするかもしれないですよね。どんどんデータが増えたり減ったりするかもしれません。
その状態を「動的」に獲得するか、そのときの状態をその都度 html 保存してブラウザに表示するようにするか・・・。