|
hatena さん、その節は大変お世話になり、ありがとうございました。
hatenaさんに教えていただいたシステムを運用しております。とても快適に使うことができ、助かっております。
>DoCmd.RunCommand acCmdSaveRecord
>で強制的にレコード保存すればいいかと。
DoCmd.RunCommand acCmdSaveRecordの使い方を調べて、コードを記述し、動かしてみました。
私がわかった範囲では、フォームの元になっているテーブルに保存する形にしかできませんでした。
今までは、下記のように記述して、「名簿」テーブルからのデータに「日付」や「出欠(yes/no)」を追加して「出欠」テーブルに保存していました。
「出欠」欄にチェックのないレコードにもdate()で、当日の日付を入れていく形です。これによっていつに欠席したかを検知し、色分けしています。
また、「名簿」テーブルにあるすべてではなく、一部のフィールドだけを抜粋して保存しております。
これと同じことをするために、何かよい方法ありますでしょうか?
Private Sub 登録_Click()
Dim CN As ADODB.Connection
Dim CMD As New ADODB.Command
Dim RS As New ADODB.Recordset
Dim RS2 As New ADODB.Recordset
Set CN = CurrentProject.Connection
Set RS2 = New ADODB.Recordset
RS2.Open "出欠", CN, adOpenStatic, adLockOptimistic
With CMD
.ActiveConnection = CN
.CommandText = "SELECT * FROM 名簿 " _
& "WHERE クラス ='" & Me.クラス選択 & "' " _
& "AND 曜日='" & Me.曜日選択 & "'"
.CommandType = adCmdText
End With
Set RS = CMD.Execute
Do Until RS.EOF
RS2.AddNew
RS2!生徒番号 = RS!生徒番号
RS2!出席日 = Date
RS2!出欠 = RS!出欠
RS2!振替予定日 = RS!振替予定日
RS2!チケット受講 = RS!チケット受講
RS2.Update
RS.MoveNext
Loop
RS.Close
End Sub
|
|