<第2回> |
データベースを作る 兵庫県立西宮香風高等学校 松本吉生 ymatsumoto@hyogo-c.ed.jp |
<<前のページへ | ||||||||||||||||||||||
Accessのテーブルを作る | ||||||||||||||||||||||
出欠管理と成績管理のための基本的なテーブルをアクセスで作る。ここで決めたテーブル構造によって、必要な処理ができなくなったり、同じ処理をするにも手間がかかったり複雑になったりするので、慎重に考えなければならない。特にInfoPathから行うクエリ操作の上で、テーブル構造に工夫が必要な面もある。 データベースを構築する際の考え方として「正規化」があるが、実際の業務運用上は完全に正規化しないほうがうまく運用できる場合もある。正規化について知っておく必要はあるが、必ずしも正規化しなければならないと思いこまないほうがいいだろう。 | ||||||||||||||||||||||
成績処理システムの前提となるモデル |
||||||||||||||||||||||
ここで作る成績処理システムの前提となるモデルは、一般的な全日制普通科の小規模高校として、最も単純化したものを想定した。 (1)第一学年 (1)については、まず第一学年の処理を作れば、次に全学年に広げることは簡単だろう。(2)と(6)については規模の問題なので、大きくても同じ処理ができる。(3)では7時間授業や土曜日授業のケースも考えられるが、処理としては同じものでできるだろう。(4)は、芸術などで選択授業の場合もあるが、基本的なクラス展開の処理ができれば、受講の方法を工夫することで処理することができるはずだ。(5)についても多くの学校でみられるケースだろう。 |
||||||||||||||||||||||
テーブルの概要 |
||||||||||||||||||||||
まず生徒や教員、講座の情報を管理するための基本的なテーブルを、次のように設計する。 (1)生徒テーブル・・・生徒の個人情報を記録する。 次に、出欠管理をするために必要なテーブルを、次のように設計する。 (5)時間割テーブル・・・講座が何曜日の何時限にあるかを記録する。 そして成績処理をするために必要なテーブルを、次のように設計する。 (8)成績テーブル・・・生徒の講座ごとの成績を記録する。 |
||||||||||||||||||||||
Accessによるテーブル作成 |
||||||||||||||||||||||
Microsoft Access 2003でデータベースを新規作成し、デスクトップに「成績管理」という名前で保存する。そして次のようにテーブルを作成する。 |
||||||||||||||||||||||
(1)生徒テーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
(2)教員テーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
(3)講座テーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
(4)クラステーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
(5)時間割テーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
(6)授業日テーブル | ||||||||||||||||||||||
| ||||||||||||||||||||||
Accessでテーブルを作成する方法はここでは説明しないが、作成したテーブルの画面は次のようなものになっているはずだ。 | ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
授業日データの作成 | ||||||||||||||||||||||
「授業日」テーブルのデータに基づき、生徒の出欠データを生成する。そこで授業日データは、処理年度の4月1日から3月31日までの日付データを登録しなければならない。 このような一連のデータを合理的に作成するにはいろいろな方法が考えられるが、最も手軽な方法はエクセルを用いることである。ここではエクセルを使って次のような手順で一連の授業日データを作成しよう。 (1)エクセルを起動し、セルA1に「年月日」、セルB1に「曜日」、セルC1に「授業日」とアクセスのフィールド名に対応した表題を入力する。 「WEEKDAY()」関数は、日付から曜日を取得する関数である。最初の引数は対象となる日付の入ったセルを示し、2つめの引数は曜日として取得する数値の種類を決める。2つめの引数が「1」なら、日曜が「1」、月曜が「2」・・・となる。曜日を判定する式はエレガントでないが、日付の曜日を間違いなく表示してくれるだろう。授業日データは日曜と土曜を「2」、月曜から金曜を「1」としておく。 | ||||||||||||||||||||||
| ||||||||||||||||||||||
日付データができたら、エクセルのファイル形式で適当な名前で保存しておく。そしてアクセスからデータのインポートを行い、「授業日」テーブルへデータをインポートする。 | ||||||||||||||||||||||
授業日データのインポート | ||||||||||||||||||||||
Access 2003で「ファイル」メニューから「外部データの取り込み」−「インポート」をクリックする。ファイルを開くダイアログで「ファイルの種類」を「Microsoft Excel(*.xls)」にして、保存したエクセルファイルを選択し「インポート」ボタンをクリックする。 | ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
「ワークシートインポートウィザード」が起動するので、指示に従ってワークシートを選択し、先頭行をフィールド名とし、保存するテーブルを「授業日」に設定する。 |
||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
「完了」ボタンをクリックして「ワークシートインポートウィザード」を終了すると、「授業日」テーブルに一年間の日付データがインポートされる。 このときインポートウィザードが正常に行われない場合は、エクセルのシートに書いた表題が、アクセスのテーブルに設定したフィールド名と違っていないか確認する。表題がフィールド名と同じでないと、データの対応付けができないのでエラーになるのだ。 |
||||||||||||||||||||||
| ||||||||||||||||||||||
このページのまとめ | ||||||||||||||||||||||
このページでは、処理に必要な基本のテーブルをAccessで作成することを説明した。日付データを作成するには、Excelを使い、Accessのインポートウィザードを使うと合理的にできる。次はここで作ったAccessデータベースファイルを、ネットワーク上の共有フォルダに配置することを説明する。 なお、このページでは、特に断りのない限り、Access2003とInfoPath2003を使って説明している。また今回は日付データを作成するために、Excel 2003を使った。 クライアントコンピュータのOSはWindowsXPで、サーバは使っていない。 | ||||||||||||||||||||||
mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る | ||||||||||||||||||||||
matsumotoyoshio.com 2007/11/22 | ||||||||||||||||||||||