Ms access 一旦达到某个阈值,使用时间戳更新access中的记录
很抱歉,我是access方面的新手,似乎无法找到以下问题的解决方案: 我有一个简单的access数据库,用于监控在任务上花费的小时数。在该活动超过7小时时,我希望更新记录以表明这一事实,可能带有一个时间戳,指示超过该时间的月份和年份 关于在任务上花费的时间的信息将在一个月的某一天手动输入,7个以上的时间可以在几个月内收集。但是,有必要能够根据数据生成报告,并提供明细表,说明有多少任务超过了7小时,以及这是在哪个月发生的Ms access 一旦达到某个阈值,使用时间戳更新access中的记录,ms-access,Ms Access,很抱歉,我是access方面的新手,似乎无法找到以下问题的解决方案: 我有一个简单的access数据库,用于监控在任务上花费的小时数。在该活动超过7小时时,我希望更新记录以表明这一事实,可能带有一个时间戳,指示超过该时间的月份和年份 关于在任务上花费的时间的信息将在一个月的某一天手动输入,7个以上的时间可以在几个月内收集。但是,有必要能够根据数据生成报告,并提供明细表,说明有多少任务超过了7小时,以及这是在哪个月发生的 如何设置自动规则/操作以更新7小时阈值上的记录?(每个记录当前包含一个字段,
如何设置自动规则/操作以更新7小时阈值上的记录?(每个记录当前包含一个字段,记录的运行总小时数)如果您使用表单将新记录插入表中,可以通过多种方式执行此操作。如果您对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
如果DLookup(“TotalHours”、“TasksTotals”、“TaskID=“&Me.TaskID&”)大于等于7,则
如果DLookup(“TaskID”、“Tasks7h”、“TaskID=“Me.TaskID&”)Me.TaskID,则
Me.sevethhoursratch=“Yes”--这是您使用的文本字段
如果结束
如果结束
确保表单上显示了“七小时搜索”字段,但已禁用或锁定或禁用并锁定
对于您的报告,如果您在TaskDate字段的默认值中使用函数now(),您将获得到达第七个小时的日期和时间。您可以为报表查询筛选七个小时为“是”的所有记录。我不知道您的项目类型。这可能是一场比赛。