|    | 
     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 
 
 | 
     
    
   |