기본적으로 세로 데이터를 가로 (예 : 탁월한 테이블)로 변환하려고합니다. 중첩 된 루프를 사용해야하지만 어떻게할지는 확실하지 않습니다! 여기에 작동하고 지금까지의 코드는하지만 싶지 방법 : 내가 원하는 Code result중첩 된 do.wof 루프 선택한 쿼리를 기반으로 액세스 vba
내 코드이 반환
strSQL = "SELECT * FROM tblTimeSheetData WHERE [WorkDate] BETWEEN #" &
StartDate & "# AND #" & EndDate & "#" _
& "ORDER BY [EmpID], [WorkDate] ;"
Set rstTime = CurrentDb.OpenRecordset(strSQL)
Do While Not rstTime.EOF
rstTemp.AddNew
lngEmpID = rstTime![EmpID]
rstTemp![EmpID] = lngEmpID
intWeekday = Weekday(rstTime![WorkDate])
Select Case intWeekday
Case 2
rstTemp![MondayWorkDate] = rstTime![WorkDate]
rstTemp![MondayWorkHours] = rstTime![WorkHours]
Case 3
rstTemp![TuesdayWorkDate] = rstTime![WorkDate]
rstTemp![TuesdayWorkHours] = rstTime![WorkHours]
Case 4
rstTemp![WednesdayWorkDate] = rstTime![WorkDate]
rstTemp![WednesdayWorkHours] = rstTime![WorkHours]
Case 5
rstTemp![ThursdayWorkDate] = rstTime![WorkDate]
rstTemp![ThursdayWorkHours] = rstTime![WorkHours]
Case 6
rstTemp![FridayWorkDate] = rstTime![WorkDate]
rstTemp![FridayWorkHours] = rstTime![WorkHours]
End Select
rstTemp.Update
rstTime.MoveNext
Loop
내 선택 쿼리는 정확히 내가 원하는 반환 반환하는 방법 : Horizontal view
감사합니다. AG
직원 ID가 이전과 다른 경우
'rstTemp.AddNew' 직원 ID가 이전 ID와 다른 경우에만 수행해야합니다. –
대신 크로스 탭 쿼리 (PIVOT)를 사용하는 것이 좋습니다. 이것은 바로 그들이하는 일입니다. – Andre