訂正ボタンのコードを見ていきます。
その前に検索部分の確認をしておきます。
レコードの検索を行うには、つぎのように使い分けます。
テーブルセットタイプ : Seekメソッド
ダイナセットタイプ :Findメソッド
スナップショットタイプ : Findメソッド
よくヘルプを確認しないと何度やっても失敗します。それはリンクテーブルの場合です。
今回はテーブルセットなので、基本のSeekメソッドを使った場合を示します。
しかし、環境の違いも考慮してFindメソッドもコメント行で示しておきます。使い分けしてください。
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 |
Private Sub cmd_UpDate_Click() ‘—— 訂正処理 ————- Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb() ‘—–Findメソッドを使う場合 ‘Set rs = db.OpenRecordset(“T_everyday”, dbOpenDynaset) ‘rs.FindFirst “Class_Id=” & “‘” & Me.cmb1.Column(0) & “‘” & ” And “ & “N_date=” & “‘” & Me.T_date & “‘” ‘—-Seek メソッドを使う場合 Set rs = db.OpenRecordset(“T_everyday”, dbOpenTable) rs.Index = “PrimaryKey” rs.Seek “=”, Me.cmb1.Column(0), Me.T_date ‘——————————————– rs.Edit rs!N_ketu = T_ketu rs!N_tiko = T_tiko rs!N_sou = T_sou rs!N_tei = T_teisi rs!N_infu = T_inful rs.Update Requery rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub |
最初に説明したようにVBAとして主要な部分は前回と併せてこれだけですが、日常業務を見直せば応用できる場面は少なくありません。
尚、管理者はすべての機能を利用できるように説明しましたが、役職上の業務を行っているだけで必ずしもPCの専門家ではありません。従って管理者用の画面もミスのないようにしなくてはなりません。
担任不在時に代わって入力する画面も、基本構成は担任用と同じです。ただクラスが連続で自由に選択できるようにしているだけです。