<第1回>

なぜInfoPathとAccessなのか

兵庫県立西宮香風高等学校 松本吉生

ymatsumoto@hyogo-c.ed.jp

 
 
 

はじめに

   
 

全日制普通高校の学校の出欠管理と成績管理は、教員の持っている教務手帳、学年の出席簿、成績伝票、成績一覧表などの書類ベースで行われているところが多い。その反面、選択科目が非常に多い総合学科、履修習得の管理が難しい単位制高校などでは、そのほとんどが業者にシステム開発を発注して使っているだろう。しかし筆者は、どの学校でも、自前でシステムを構築して出欠管理や成績管理を行うべきだと考える。全日制普通高校でも、教務的な業務をシステムで行うことで業務軽減になるし、生徒の状況をリアルタイムにつかみ、学習指導や進路指導に活かすことができるからだ。

業者にシステム開発を発注したとき、残念ながら使えないシステムになってしまうケースがある。それは、完成したシステムが学校が必要とするシステム要件満たさないからなのだが、その理由は(1)学校の教務的なシステムは複雑であること、(2)学校の教務的な規定に頻繁に変更がおこること、(3)学校の教務的な運用に例外が多くあること、(4)学校が自ら必要なシステム要件を理解できないこと、である。

まず学校の教務的なシステムは意外に複雑である。学校のシステムを作るには、その複雑さを理解していなければならない。またここ数年、学校は大きな変革期にあって、以前なら考えなくてもよかったことが生じている。高認検の単位を認定したり、高大連携という大学の授業を受講して単位を認定する、といった新しい試みを始めると、校内の授業だけを考えて作られたシステムでは対応できなくなる。例外的な処理も多くある。単位の履修修得の規定があっても「原則として」と但し書きがあれば、規定を外れて処理するケースがある。

そして最も大きいと思われる理由として、学校の担当者が自らの学校が必要としているシステム要件を把握できないまま業者と仕様を決めてしまうことにある。それは学校の教務的な仕事の流れを、コンピュータシステムに適応させるには何が必要か、という観点からの考え方が足りないからだ。作ってしまってから「なぜこれができないの?」と気がついても遅い。

つまり学校のシステムを構築する者は、実際の仕事の流れとコンピュータシステムの処理手法の両方に通じていなければならないのだ。

 
自前でシステムを構築するメリット
   
 

パソコンを使ったデータ処理の方法が、エクセルなどの表計算ソフトしかなかった時代は、成績処理にも限界があった。そのためプログラミングの得意な教員が成績ソフトを開発して運用することもあった。アクセスというデータベースソフトができて、本格的なデータベースを構築することができる時代になった。そして現代はSQL Serverというデータベースが簡単に利用できる時代であり、Active Directoryでセキュリティ管理も簡単になっている。教員が自前で高度なクライアントサーバシステムを構築できる時代になったのだ。

SQL Serverによってデータベースが身近になり、Active Directoryによってセキュリティ管理が簡単になった。そしてInfoPathによってクライアント・サーバ型のデータベースアプリケーションが簡単に作れるようになった。InfoPathはもともとXMLドキュメントを効率よく生成するためのアプリケーションだが、SQL Serverなどのデータベースをターゲットにすることもできるのだ。

自前でシステムを構築するメリットは、自らの学校が必要とするシステムを100%作ることができることである。一度に全部作らなくても、まず基本的なシステムを作り、運用しながら時間をかけて細部を作ることも可能だ。規定が変わればそれに合うように作り直すことができるし、データベースがバージョンアップしたりOSなどプラットフォームが変わっても自分でデータを移行することができるだろう。

 
なぜInfoPathとAccessを組み合わせるか
   
 

筆者は学校のデータベースを構築するのに、InfoPathとSQL Serverの組み合わせが最適だと考えている。しかしSQL Serverの導入には敷居が高い面もある。管理にも知識が必要だ。そこでデータベースにAccessデータベースファイルを使うことも検討していいだろう。InfoPathは接続するデータベースにAccessを使うこともできるのだ。InfoPathはどちらのデータベースをターゲットにしても、一行もコードを書く必要なく、高度な入力機能を持ったクライアントアプリケーションを作ることができる。

Accessは単体でテーブルやビュー、フォーム、レポートなどを作り、それだけでデータベースとして完結したものを作ることができる。しかしAccessは基本的にパーソナルなアプリケーションであり、データベースを開いたとき、ユーザーはそのファイルを占有してしまい、他のユーザーがデータベースに同時にアクセスすることはできない。しかしAccessデータベースファイルに接続するクライアントをInfoPathにすれば、InfoPathからクエリや送信を行うタイミングでだけデータベースに接続するので、一人のユーザーがデータベースを占有するということはなくなる。つまり、実際的に複数のユーザーがアクセスできる、クライアントサーバ型のアプリケーションのようなものが構築できるのだ。

ただし気をつけなければならないことは、あくまでもInfoPath側からのクエリや送信はトランザクション管理をしていないので、クエリによってデータを取得した後、別のユーザーによってデータが書き換えられるとデータの矛盾がおこる。したがって同じデータに複数のユーザーが変更作業をしないようにデータ構造やフォームを作る必要がある。

 
このページのねらい
   
 

このページの対象は学校の先生で、自分の学校で成績管理や出欠管理をデータベースで行いたいと思っている人を想定している。使うアプリケーションはAccess、InfoPath、Excelだが、InfoPathの使い方を全く知らない人でもわかるように説明する。Accessはクエリやフォーム、レポートの使い方を知らなくてもよいが、Accessの起動と終了、テーブルの作成までは自分でできる人を想定している。Excelも単純な表作成ができればよい。

もしAccessを使ったことがない人で、テーブル作成も難しい、という人がいて困っているならメールをいただきたい。Accessの使い方までかみくだいて説明するページを用意してもいいと思っている。

このページを参考にすれば、AccessデータベースファイルとInfoPathの組み合わせで、一行もコードを書く必要なく高機能なクライアントサーバ型データベースアプリケーションを手軽に作ることができる。実際に運用してから、より本格的なシステム構築の必要を感じるようになれば、テーブルをSQL Serverに移行して再構築すればよいだろう。

なお、このページでは、特に断りのない限り、Access2003とInfoPath2003を使って説明する。また一部のテーブルでデータを作成するときに、Excel 2003を使う。 クライアントコンピュータのOSはWindowsXPで、サーバは特に使っていない。ただし最後でユーザー管理の工夫をするところでは、Active Directoryの環境でInfoPath2007を使うところがある。

このページでは、AccessをデータベースにしたInfoPathのフォームを作成するが、データベースのテーブルにない「テンポラリフィールド」でクエリを行う方法や、フォーム上でデータベースと連携した画像の表示を行う方法など、フォーム作成上の様々な工夫を紹介する。学校の先生や教育関係者でなくても、InfoPathとデータベースに関するヒントを得られると思うので、期待してほしい。

WindowsXPもOffice2003もサービスパックが出ているので、環境によってはここで説明したとおりにいかない場合もあるかもしれない。筆者もすべての組み合わせを検証していう訳ではないが、セキュリティ上の条件がクリアできないケースもあった。暫定的な回避策もあるので、やってみてうまくいかなかった場合は遠慮なくメールを出していただきたい。筆者のメールアドレスはymatsumoto@hyogo-c.ed.jpだ。

また、このページはMicrosoftのExpression Webで作成した。Expressionのシリーズは、Microsoftが正面からWebデザインの世界に向き合った新しいアプリケーションソフトウエアであり、開発段階から注目と期待を集めたものだ。これもぜひ使ってみることをお勧めする。

(注)文中の「テンポラリフィールド」という言葉は筆者の造語である。

     
  mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る
     
 
matsumotoyoshio.com 2007/11/21