P
p
Hi,
I have this query:
SELECT DISTINCT tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, SUM([tbl_Activity.Units]) AS
TotalTimeSpent, SUM([tbl_Activity.Units]*[tbl_Activity.Rate]) AS
TotalSpent, [tbl_Jobs.Job_Budget]/[tbl_Jobs.Job_Duration] AS
ProjectedSpent, tbl_Jobs.Job_Budget
FROM (tbl_Employee INNER JOIN (tbl_Jobs INNER JOIN tbl_Activity ON
tbl_Jobs.Job_ID = tbl_Activity.JobID) ON (tbl_Employee.EmployeeID =
tbl_Jobs.Employee_ID) AND (tbl_Employee.EmployeeID =
tbl_Activity.EmployeeID)) INNER JOIN tbl_Progress ON
tbl_Jobs.Job_Number = tbl_Progress.Job_Number
GROUP BY tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, tbl_Jobs.Job_Budget
HAVING (((tbl_Progress.Date) Between Now() And DateAdd("m",-4,Now()))
AND ((tbl_Employee.EmployeeID)=[Forms]![Eva]![EmployeeID]));
However, I need to run multiple calculations which are above and beyond
the ability of SQL only so I am incorporating it into VBA.
This is the VBA code i have at the moment:
ReportSQL = "SELECT DISTINCT tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, SUM([tbl_Activity.Units]) AS
TotalTimeSpent, SUM([tbl_Activity.Units]*[tbl_Activity.Rate]) AS
TotalSpent, [tbl_Jobs.Job_Budget]/[tbl_Jobs.Job_Duration] AS
ProjectedSpent, tbl_Jobs.Job_Budget " & _
" FROM (tbl_Employee INNER JOIN (tbl_Jobs INNER JOIN
tbl_Activity ON tbl_Jobs.Job_ID = tbl_Activity.JobID) ON
(tbl_Employee.EmployeeID = tbl_Jobs.Employee_ID) AND
(tbl_Employee.EmployeeID = tbl_Activity.EmployeeID)) INNER JOIN
tbl_Progress ON tbl_Jobs.Job_Number = tbl_Progress.Job_Number " & _
" GROUP BY tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, tbl_Jobs.Job_Budget " & _
" HAVING (((tbl_Progress.Date) Between Now() And
DateAdd("m",-4,Now())) AND
((tbl_Employee.EmployeeID)=[Forms]![Eva]![EmployeeID]))"
but it says there are two few parameters expected. I know because its
DAO that I have to change the values for the form reference (and maybe
the date) but after hours of fiddling around I cannot get it to work.
Could someone changeout the above VBA code with an sql string that
would work?
thanks alot.
I have this query:
SELECT DISTINCT tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, SUM([tbl_Activity.Units]) AS
TotalTimeSpent, SUM([tbl_Activity.Units]*[tbl_Activity.Rate]) AS
TotalSpent, [tbl_Jobs.Job_Budget]/[tbl_Jobs.Job_Duration] AS
ProjectedSpent, tbl_Jobs.Job_Budget
FROM (tbl_Employee INNER JOIN (tbl_Jobs INNER JOIN tbl_Activity ON
tbl_Jobs.Job_ID = tbl_Activity.JobID) ON (tbl_Employee.EmployeeID =
tbl_Jobs.Employee_ID) AND (tbl_Employee.EmployeeID =
tbl_Activity.EmployeeID)) INNER JOIN tbl_Progress ON
tbl_Jobs.Job_Number = tbl_Progress.Job_Number
GROUP BY tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, tbl_Jobs.Job_Budget
HAVING (((tbl_Progress.Date) Between Now() And DateAdd("m",-4,Now()))
AND ((tbl_Employee.EmployeeID)=[Forms]![Eva]![EmployeeID]));
However, I need to run multiple calculations which are above and beyond
the ability of SQL only so I am incorporating it into VBA.
This is the VBA code i have at the moment:
ReportSQL = "SELECT DISTINCT tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, SUM([tbl_Activity.Units]) AS
TotalTimeSpent, SUM([tbl_Activity.Units]*[tbl_Activity.Rate]) AS
TotalSpent, [tbl_Jobs.Job_Budget]/[tbl_Jobs.Job_Duration] AS
ProjectedSpent, tbl_Jobs.Job_Budget " & _
" FROM (tbl_Employee INNER JOIN (tbl_Jobs INNER JOIN
tbl_Activity ON tbl_Jobs.Job_ID = tbl_Activity.JobID) ON
(tbl_Employee.EmployeeID = tbl_Jobs.Employee_ID) AND
(tbl_Employee.EmployeeID = tbl_Activity.EmployeeID)) INNER JOIN
tbl_Progress ON tbl_Jobs.Job_Number = tbl_Progress.Job_Number " & _
" GROUP BY tbl_Progress.Progress, tbl_Progress.Date,
tbl_Employee.EmployeeID, tbl_Activity.ActivityDate, tbl_Activity.Units,
tbl_Activity.Rate, tbl_Progress.Job_Number, tbl_Jobs.Job_ID,
tbl_Employee.Name, tbl_Employee.Initials, tbl_Jobs.Job_Duration,
tbl_Jobs.Job_Name, tbl_Jobs.date_Value, tbl_Jobs.Job_Budget " & _
" HAVING (((tbl_Progress.Date) Between Now() And
DateAdd("m",-4,Now())) AND
((tbl_Employee.EmployeeID)=[Forms]![Eva]![EmployeeID]))"
but it says there are two few parameters expected. I know because its
DAO that I have to change the values for the form reference (and maybe
the date) but after hours of fiddling around I cannot get it to work.
Could someone changeout the above VBA code with an sql string that
would work?
thanks alot.