前回までの内容を踏まえて、VBAのコードを見ていきます。
クラス担任が日々行うデータの登録用です。
登録ボタンと訂正ボタンがありますが、最初は訂正ボタンが無効です。
各項目を入力し登録ボタンを押すと、ボタンの有効・無効が反転します。(訂正ボタンだけが有効となる。)
ただし、その場だけの入力ミスを訂正するもので、後からミスに気付いて訂正しようとしてもできない仕組みになっています。教務の担当者が日誌を印刷してから訂正しても反映されないからです。これは先に説明した通りです。
訂正しようと再度担任がこのフォームを開くと、登録ボタンは有効ですが 二重登録になるので、「訂正がある場合は担当者に連絡してください」とのメッセージを出します。(訂正ボタンは有効にはなりません。)
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 37 38 39 40 41 42 43 44 45 |
Private Sub cmd_AddNew_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim rc As Integer ‘登録済みデータを調べるため ‘ LoginNameが使えない場合は、コンボボックスからクラスを選択するようにしてください ‘ If IsNull(cmb1) Then ‘ MsgBox “クラスを選択してくだい” ‘ Exit Sub ‘ End If ‘ ‘以下、クラスが指定されている前提 Set db = CurrentDb() Set rs = db.OpenRecordset(“T_everyday”) ‘データが登録済みかを調べる rc = DCount(“*”, “T_everyday”, “Class_Id=’” & Me.cmb1.Column(0) & “‘” & ” And ” & “N_date=’” & Me.T_date & “‘”) If rc > 0 Then ’登録済み MsgBox “訂正がある場合は担当者に連絡してください。” Exit Sub Else ‘新規登録 rs.AddNew rs!Class_Id = cmb1.Column(0) rs!N_date = T_date 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 Me.cmd_AddNew.Enabled = False Me.cmd_UpDate.Enabled = True Requery End If rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub |