アクセスフォームActivityTrackerを開いて新しいレコードを開くときに、フィールド* start_time *に現在の時刻now()を自動入力するようにします。
Private Sub Form_Open(Cancel As Integer)
If IsNull(Form_ActivityEntry.Start_time) And IsNull(Form_ActivityEntry.id) Then
Form_ActivityEntry.Start_time = Now()
End If
End Sub
これにより、「このオブジェクトに値を割り当てることはできません」というエラーがスローされ、実行が停止します。
新しいレコードに明示的に移動することでエラーを修正できます
Private Sub Form_Open(Cancel As Integer)
If IsNull(Form_ActivityEntry.Start_time) And IsNull(Form_ActivityEntry.id) Then
DoCmd.RunCommand acCmdRecordsGoToNew
Form_ActivityEntry.Start_time = Now()
End If
End Sub
またはによって
Private Sub Form_Open(Cancel As Integer)
If IsNull(Form_ActivityEntry.Start_time) And IsNull(Form_ActivityEntry.id) Then
Me.Recordset.AddNew
Form_ActivityEntry.Start_time = Now()
End If
End Sub
ただし、これらのいずれかにより、「指定されたレコードに移動できません」というポップアップ警告が表示されます。
これで警告を抑えようとしました
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.SetWarnings True
またはエラー処理を設定することにより、
On Error GoTo Err_SomeName
しかし、それでも警告が表示されます。
AllowAdditionsはTrueに設定されています。レコードセットのタイプはDynasetです。
それ以外の場合は、このフォームですべてが正常に機能します。
私は何が間違っているのですか?「オープンフォーム」ではなく「オープニングニューレコード」というイベントはありますか?
ご協力いただきありがとうございます!