2010-01-20 104 views
0

我有一個名爲OT Hours的表,它具有以下列 EmpId,Date,Hours。在Access查詢中使用循環

我需要在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

將數字表格從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"