フォームを使用して新しいレコードをテーブルに挿入する場合、これを行う方法はいくつかあります。VBAの知識があれば教えていただけると助かります。
MS Access 2013 を使用している場合は、データ マクロ (SQL Server トリガーと同等の MS Access) も使用できます。
下位バージョンの Access を使用しており、フォームを使用してデータをテーブルに挿入/更新していると仮定すると、次のことが可能になります。
1. Create a query that summarize all hours spent group by taskID (*SELECT TaskID, SUM(Task_Hours) AS TotalHours FROM Tasks GROUP BY TaskID* let call this Query TasksTotals)
2. Modify your Tasks table to Include Date/Time you can call it TaskDate) and another field called SeventhHourReached with a Boolean or a text value to be Yes or No
3. Create another Query that filters all tasks that have already reached the 7th hours (SELECT TaskID FROM Tasks Where SevethHourdReached ="Yes" GROUP by TaskID) - Lets call this query Tasks7H
ここで、いくつかの VAB を実行する必要があります
フォームの現在のイベント プロシージャまたは更新後のフォーム フィールド時間
で、VBA で次のイベント プロシージャを使用します。
If DLookup("TotalHours", "TasksTotals", "TaskID = " & Me.TaskID &"") >= 7 Then
If DLookup("TaskID", "Tasks7h", "TaskID = " Me.TaskID & "") <> Me.TaskID Then
Me.SevethHoursReached = "Yes" ----- This is you used a text field
End If
End if
フィールド SevethHourReached がフォームに表示されているが、無効またはロックされているか、無効でロックされていることを確認してください。
レポートでは、TaskDate フィールドのデフォルト値に関数 now() を使用した場合、7 時間に達した日付と時刻が表示されます。レポート クエリに対して、7 時間に達したすべてのレコードを yes としてフィルター処理できます。