Try adding an order by clause to the query you are using in the
concatenate function
SELECT tblProjects.ProjectID, tblSubmissions.SubmissionID,
Concatenate("SELECT Abbreviation FROM tblStaffMembers WHERE StaffID
IN(SELECT [tblTeamInt]![StaffID] FROM tblTeamInt WHERE
tblTeamInt.SubmissionID=" &
tblSubmissions.SubmissionID & ") ORDER BY TeamInt.Id") AS StaffNames
FROM ((tblProjects INNER JOIN tblSubmissions ON tblProjects.ProjectID =
tblSubmissions.ProjectID) INNER JOIN tblTeamExt ON
tblSubmissions.SubmissionID = tblTeamExt.SubmissionID) INNER JOIN
(tblTeamInt
INNER JOIN tblStaffMembers ON tblTeamInt.StaffID = tblStaffMembers.StaffID)
ON tblSubmissions.SubmissionID = tblTeamInt.SubmissionID
GROUP BY tblProjects.ProjectID, tblSubmissions.SubmissionID;
'====================================================
John Spencer
Access MVP 2002-2005, 2007
Center for Health Program Development and Management
University of Maryland Baltimore County
'====================================================
Mike said:
Hi John
Thanks again for your assistance earlier, that worked perfect for me except
for one other thing..(just to get blood from a stone..!)
I would really like for the records i am concatenating to be put in the
order that they were entered (ie sorted via the TeamIntID in tblTeamInt) any
ideas how i could do this?
Regards
Mike
:
On Mon, 2 Jul 2007 11:28:02 -0700, Mike Diamond
Hi John
Good Point..as below..
What i would like to do is have the abbreviation field concatenated for all
related records carrying the same submissionid. The below is showing me three
related records unconcatenated.
SELECT tblProjects.ProjectID, tblSubmissions.SubmissionID,
Concatenate("SELECT Abbreviation FROM tblStaffMembers WHERE StaffID =" &
[tblTeamInt]![StaffID]) AS StaffID
FROM ((tblProjects INNER JOIN tblSubmissions ON tblProjects.ProjectID =
tblSubmissions.ProjectID) INNER JOIN tblTeamExt ON
tblSubmissions.SubmissionID = tblTeamExt.SubmissionID) INNER JOIN (tblTeamInt
INNER JOIN tblStaffMembers ON tblTeamInt.StaffID = tblStaffMembers.StaffID)
ON tblSubmissions.SubmissionID = tblTeamInt.SubmissionID
GROUP BY tblProjects.ProjectID, tblSubmissions.SubmissionID,
Concatenate("SELECT Abbreviation FROM tblStaffMembers WHERE StaffID =" &
[tblTeamInt]![StaffID]);
You're concatenating all the records (all one of them!!!) for the given
StaffID - that's what is in your Concatenate statement! I think you need
SubmissionID instead; and to do that you'll need to join tblSubmissions inside
the concatenate function. Try
SELECT tblProjects.ProjectID, tblSubmissions.SubmissionID,
Concatenate("SELECT Abbreviation FROM tblStaffMembers WHERE StaffID IN(SELECT
[tblTeamInt]![StaffID] FROM tblTeamInt WHERE tblTeamInt.SubmissionID=" &
tblSubmissions.SubmissionID & ")") AS StaffNames
FROM ((tblProjects INNER JOIN tblSubmissions ON tblProjects.ProjectID =
tblSubmissions.ProjectID) INNER JOIN tblTeamExt ON
tblSubmissions.SubmissionID = tblTeamExt.SubmissionID) INNER JOIN (tblTeamInt
INNER JOIN tblStaffMembers ON tblTeamInt.StaffID = tblStaffMembers.StaffID)
ON tblSubmissions.SubmissionID = tblTeamInt.SubmissionID
GROUP BY tblProjects.ProjectID, tblSubmissions.SubmissionID;
You might need to Group By the Concatenate expression (though you should be
able to use Expression as the totals operator).
John W. Vinson [MVP]