説明が前後してしまったが、今回はADOによるデータ操作を行っている。コードエディタのツールから参照設定を適宜行ってください。
さて、前回の処理で成績一覧のもとになるテーブル(T_ichiran)が作成できた。
次は、このテーブルに各生徒名と各科目の点数をセットする処理である。
最初に生徒名をセットする処理から見ていく。
2つのテーブル(Recordsetをr2とr4とする)を操作するので
r2.Open “T_ichiran”, cn, adOpenKeyset, adLockOptimistic
r4.Open “T_seito”, cn, adOpenStatic,adLockReadOnly(読込専用)
としてOpenし、
r4の生徒名をr2の生徒名フィールドに新規追加していけばよい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Dim cn As ADODB.Connection ‘—- 最終的に4つのテーブルを使用します —- Dim r1 As ADODB.Recordset Dim r2 As ADODB.Recordset Dim r3 As ADODB.Recordset Dim r4 As ADODB.Recordset ‘—————————————————– Set cn = CurrentProject.Connection Set r2 = New ADODB.Recordset Set r4 = New ADODB.Recordset ‘T_seitoテーブルから生徒名を取り出し、T_ichiranテーブルにデータを追加する処理 r2.Open “T_ichiran”, cn, adOpenKeyset, adLockOptimistic ‘新規に作成したテーブル r4.Open “T_seito”, cn, adOpenStatic,adLockReadOnly ‘生徒名を参照するテーブル Do Until r4.EOF r2.AddNew r2!生徒名 = r4!生徒名 r2.Update r4.MoveNext Loop ‘———–レコードセットを閉じる—————————————————— r2.Close Set r2 = Nothing r4.Close Set r4 = Nothing cn.Close Set cn = Nothing End Sub |
この処理によって生徒名がセットされる。
次は、成績テーブルの点数をセットすればよいのだが、もうお分かりであろう。各生徒の科目と点数を参照すればよい。
今回は生徒名だけ参照すればよかったのでループは1回で済んだ。そのことが理解できていれば次の段階も簡単だ。
各回で単独の処理として掲載したので(今回も新たにコマンドボタンを1つ作成したものとしている。)、前回と重複している定義があるが、実際には前回の処理の後に、必要な部分だけ付け加えればよい。最終的に一括したコードを掲載する。
この処理により、以下のようにT_ichiranテーブルに生徒名がセットされる。