在Access Query中使用循环

时间:2010-01-20 19:14:27

标签: ms-access

我有一个名为OT Hours的表,其中包含以下列 EmpId,Date,Hours。

我需要在6个员工的当前日期之前的12个月内在小时栏中插入一个常量值。

我可以在查询中使用for循环吗? 如果是,请给我一个例子。 截至目前,我可以在VBA中进行如下操作:

  Dim j As Integer
  For j = -11 To 0
    DoCmd.RunSQL "INSERT INTO tblOTHours (employeeNumber, theDate, HoursType, Position, hoursQuantity) VALUES ('" & S.sanitize(txtEmployeeNumber) & "',DateAdd('m'," & j & ",Format(Now(),'mm/dd/yyyy')),'OT1','" & cmb_position.value & "'," & Round(Val(rs("Avg")) / 12, 1) & ")"
  Next

注意:我正在使用MS Access。我可以在查询本身中执行此功能吗?

1 个答案:

答案 0 :(得分:1)

将数字表从1或0保存到适当高的数字可能很有用。您的查询可以像这样利用此表:

"INSERT INTO tblOTHours (theDate, employeeNumber, HoursType, [Position], hoursQuantity) " _
& "SELECT DateAdd('m',Number,Date()), '" & S.sanitize(txtEmployeeNumber) & "','OT1','" _
& cmb_position.value & "'," & Round(Val(rs("Avg")) / 12, 1) _
& " FROM Numbers " _
& "WHERE Numbers.Number<11"