先にDAOによるコードを掲載しましたが、ADO版も掲載してほしいという要望がありました。
リンクテーブルでないことが前提として掲載します。
今回は
検索条件が見やすいように、文字列に定義し直しました。
Seek、Findに使うキーも、不可視テキストに埋め込んだT_everydayのidを利用しました。
新規追加、訂正の順に掲載します。
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 |
Private Sub cmd_add_Click() ‘新規追加 ‘検索条件を文字列として定義しました。メッセージボックスの詳細も設定しました Dim rc As Integer Dim strCriteria As String Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset strCriteria = “Class_ID='” & Me.T_code “‘” & ” And N_date='” & Me.T_date & “‘” rc = DCount(“*”, “T_everyday”, strCriteria) If rc >0 Then MsgBox “再入力はできません。” Chr(13) & “訂正がある場合は教務担当者に連絡してください。 “ Exit Sub End If rs.Open “T_everyday”, cn, adOpenKeyset, adLockOptimistic rs.AddNew rs!Class_ID = T_code 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 Me.T_rsid = rs!id idn = rs!id rs.Update Me.cmd_add.Enabled = False Me.cmd_update.Enabled = True Requery rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub |
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 |
Private Sub cmd_update_Click() ‘—— 訂正処理 ————- Dim id As Integer Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset rs.Open “T_everyday”, cn, adOpenKeyset, adLockOptimistic, 512 ‘DAOのコードと同じでもよいですが、ついでなので、idを使った検索を示します。 ‘登録時じT_everydayに書き込まれるオートナンバー型のidを ‘フォーム上の不可視テキストボックスに入れ参照します。 ‘Seekメソッドを使う場合—– Dim rskey As String rs.Index = “id” rskey = Me.T_rsid rs.Seek rskey, adSeekFirstEQ ‘Findメソッドを使う場合——— ‘rs.Find “id =” & Me.T_rsid ‘—————————————— 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 cn.Close: Set cn = Nothing End Sub |
以上で、今回の連載は終了です。