2010-01-20 5 views
0

다음 열이 포함 된 OT Hours 테이블이 있습니다. EmpId, 날짜, 시간.액세스 쿼리에서 루프 사용

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 액세스를 사용하고 있습니다. 쿼리 자체에서이 기능을 수행 할 수 있습니까?

답변

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"