成績処理3


今回の連載はVBAの基本を確認することにある。
前回、クロス集計クエリを作成すれば成績処理としては目的を達成できるという話をした。しかし、それでは実際の現場での運用はできないのである。なぜなら、最終的にレポート機能で成績一覧表を印刷することになるが、一覧表の見出しになる科目名と科目数は1種類ではないからだ。

小生が関係した高校では、多い時で3学年で一覧表のパターン(科目名の並び)は10種類以上にもなる。年度によってもまた変化する。そのようなパターンすべてに対応するレポートのテンプレートを作成しなければならない。

クロス集計クエリを元にしたレポートでは、科目名見出しや成績のデータソースが固定してしまう。1種類のレポート形式で済むならよいが、おそらくそういうケースはまれであろう。高校で単一課程で全員が同じ科目を履修したとしても、3学年なので最低でも3種類は必要である。教育課程の改訂があればその都度変化する可能性もある。

とりあえず単純化した例で説明を進めるが、実際の運用場面で役に立つ説明も最後に付け加えるつもりだ。まずは基本のVBAをしっかりおさえていこう。

フォームを作成し、コマンドボタンを1つ配置し、クリックイベントに次のコードを記述すると、T_ichiranテーブルが作成される。

この処理で、一覧表の見出しとなる
生徒名 国語 算数 理科 社会 英語 平均点
というフィールド並びのテーブルが作成される。
実際の学校現場では、科目にはコードが振られているので、コード順に並べるなどの処理が必要となる。

尚、このテーブルは一時(作業用)テーブルでなので、作成前に既存を削除処理を行う。なぜ一時テーブルなのかと言えば、点数入力等に誤りがあった場合、最新のデータを呼び出す必要があったり、複数のクラス等があった場合にはパラメータを切り替え連続処理をするためにその都度テーブルを新規に作成する必要があるからだ。

, ,