Access実践入門 TOPへ
 ■ マイクロソフトアクセス、テストデータの入力
いろんな入力方法

テストの点数を入力する場合に、次のような方法があると考えられます。
・同じ受験者で、科目の得点を全科目入力する。
・科目を固定して、その科目のみ得点を入力する。

どちらも方法でも、登録できるようにしています。


まず、フォームの「開く時」に、次のように書いています

If Me![test科目1] = "99" Then
Me![科目1].Visible = False
Me![科目1得点].Visible = False
End If
このように、科目1〜7まで書いています。

下の科目のボタンと詳細の科目の得点入力欄が科目が設定されていないと、
表示されません。
設定されていない科目の得点が入力できないようになっています。


下の科目1ボタンの「クリック時」に、次のように書いてあります。

Me![科目1得点].Locked = False
Me![科目1得点].Enabled = True

Me![科目2得点].Locked = True
Me![科目2得点].Enabled = False

Me![科目3得点].Locked = True
Me![科目3得点].Enabled = False

Me![科目4得点].Locked = True
Me![科目4得点].Enabled = False

Me![科目5得点].Locked = True
Me![科目5得点].Enabled = False

Me![科目6得点].Locked = True
Me![科目6得点].Enabled = False

Me![科目7得点].Locked = True
Me![科目7得点].Enabled = False

DoCmd.GoToControl "科目1得点"

科目1得点以外を「使用可能」を「いいえ」
「編集ロック」を「はい」にしています。
こうすることで、科目1得点以外の項目の入力ができなくなり、科目1のみの
入力になります。

逆に、全科ボタンでは、全科目を使えるようにしています。

データの追加

まず、テストを受験した生徒を表に追加して、その得点を入力する仕組みになっています。

追加登録ボタンで、次の指定画面が表示されます。



何も指定しないで開始すると、登録してある全生徒のデータが作られます。
今、作られている生徒に追加されます。生徒が二重に作られることはありません。

開始ボタンの処理を見てみます。
開始ボタンの「クリック時」に次のように書いています

DoCmd.OpenQuery "qudata追加"
DoCmd.Close acForm, "fodata指定"
DoCmd.Close acForm, "fodata一覧表"
DoCmd.OpenForm "fodata一覧表"

クエリでデータを追加して、指定画面を閉じます。
一覧表も、閉じて、開いて、最新のデータを表示しています。

クエリ「qudata追加」の内容です。


差分クエリで、二重登録ができないようにしています。
「ta生徒」と繋いで使っている「qudata追加番号」を見てみます。

このクエリは、第一段階で、「tadata」から該当テストの登録済み生徒を抽出しています。

その後、「qudata追加」で、第二段階の抽出をしています。