在MS Access中填充时间范围



我正在制作一个调度工具,它以与另一个表上的时隙ID相关的五分钟增量运行。这些时间段有一个开始时间和停止时间,它们是同一记录中的单独字段,可以使用表单输入,我想在这两个时间之间创建一个五分钟的增量范围作为记录。

最终目标是使用这些时间段来制作outlook样式的gui,以显示何时存在时间段。

我一直在努力寻找一种快速的方法来填充Access中的内容,而我在编码方面的尝试太可怜了,我不好意思展示它们。

任何建议都将不胜感激,非常感谢。

听起来像是要创建一批与特定日期相关的五分钟增量记录。不止一种方法可以实现。最简单的可能是有一个时间记录表。每条记录都有一个时间值:10:00、10:05等。然后在UNBOUND表单上,用户从组合框中选择开始和结束的时间范围,并在文本框中输入日期。VBA中的SQL操作语句可以是:

CurrentDb.Execute "INSERT INTO tblSchedules(SchedDate, SchedTime) " & _
"SELECT #" & Me.tbxDate & "#, Mins FROM tblTimes " & _
"WHERE Mins BETWEEN '" & Me.cbxStart & "' AND '" & Me.cbxEnd & "'"

如果没有此时间记录表,VBA将使用循环结构一次将一条记录保存到目标表。

Dim strT As String, db As DAO.Database
strT = Me.cbxStart
Set db = CurrentDb
Do While strT <= Me.cbxEnd
db.Execute "INSERT INTO tblSchedules(SchedDate, SchedTime) VALUES(#" & Me.tbxDate & "#, '" & strT & "')"
strT = Format(DateAdd("n", 5, CDate(strT)), "hh:nn")
Loop

在这些示例中,时间值是文本,而不是实际的日期/时间类型。这意味着;hh:nn";在24小时内:;01:00"24:00";。如果您希望保存为数字或日期/时间类型,请根据需要修改表和代码。请记住,日期/时间类型的午夜存储时没有时间组件,Format((函数显示为12:00:00 AM00:00:00。示例:Format(#1/1/2022#, "mm/dd/yyyy hh:nn:ss AM/PM")显示为2022年1月1日12:00:00 AM。跨越午夜的山脉会引起并发症。

最新更新