Ну, вы могли бы создать подзапрос для каждого из столбцов месяца, для которого вам нужна эта сумма.
Что-то вроде:
Select id, employee_ID, bla, bla, bla,
(select sum(hours) where month = 1 and year = 2010 and
employee_id = ehours.Employee_id from tblProjectHours)
as month1,
(select sum(hours) where month = 2 and year = 2010 and
employee_id = ehours.Employee_id from tblProjectHours)
as month2,
(select sum(hours) where month = 3 and year = 2010 and
employee_id = ehours.Employee_id from tblProjectHours)
as month3
etc. for each column needed
из ehours
Обратите внимание, что я использовал месяц и год в качестве столбцов, и вам, вероятно, придется использовать месяц ([SomeDate]) = 2 и год ([SomeDate]) = 2010, но вы поняли.
Кроме того, пока вы можете 'Если вы адресуете каждую строку и вставляете значение в это неограниченное текстовое поле, вы МОЖЕТЕ фактически связать текстовое поле с функцией, которая возвращает нужное значение / выражение.
txtBoxMonth1 txtboxMonth2 etc.
=MyMonth(1,[employee_id]) =MyMonth(2,[Employee_id])
И затем вформа, у вас есть открытая функция с именем
Public Function MyMonth(intMonth as interger, lngEMPID as long) as long
' code here to get total based on employee id and month
End Funciton
Итак, вы можете привязать функцию к этим текстовым полям, и текущий идентификатор emp строки может, таким образом, управлять тем, что отображает каждое текстовое поле.Просто помните, что эта функция должна предварительно обрабатывать все данные, и вам не нужно повторно запускать и перезагружать данные для каждого вызова функции, поскольку это будет слишком медленным FAR.Тем не менее, я использовал этот подход для большого успеха.Таким образом, каждая строка формы имеет только один реальный столбец (empID), остальные столбцы получены из текстовых полей, привязанных к публичной функции, как указано выше, с месяцем, переданным вместе с emp id, чтобы вернуть значение для этогоколонка.
Итак, выше приведены два возможных подхода, которые я использовал с успехом.