MadTom, I believe that you can achieve the desired results with a Function like this:
Code:
Option Compare Database
Option Explicit
'Need a reference to Microsoft ActiveX Data Objects 2.# Library
Public Function ConcField(ByVal strTable As String, _
ByVal strFields As String, _
ByVal strConc As String, _
Optional ByVal strWhere As String = "1=1", _
Optional ByVal strFormat As String) As String
Dim adoRS As ADODB.Recordset
Dim strSQL As String
Dim strRet As String
strSQL = "SELECT " & IIf(Len(strFormat), "FORMAT(", "") _
& strConc & IIf(Len(strFormat), ", """ & strFormat & """)", "") _
& " FROM (SELECT " & strFields & " FROM " & strTable _
& " WHERE " & strWhere _
& " GROUP BY " & strFields _
& " ORDER BY " & strConc & ") AS T"
'Debug.Print strSQL
On Error Resume Next
Set adoRS = New ADODB.Recordset
adoRS.Open strSQL, CurrentProject.Connection
strRet = adoRS.GetString(adClipString, , , ", ", "...")
adoRS.Close
Set adoRS = Nothing
If Len(strRet) Then
strRet = Left(strRet, Len(strRet) - 2)
ConcField = strRet
End If
End Function
in a query like this:
Code:
SELECT IIf(Min([Bin_ID])=Max([Bin_ID]),Min([Bin_ID]),Min([Bin_ID]) & "-" & Max([Bin_ID])) AS MinMaxBinID, qryBins.P_Type,
IIf(Min([Bin_Num])=Max([Bin_Num]),Min([Bin_Num]),Min([Bin_Num]) & "-" & Max([Bin_Num])) AS MinMaxBinNum,
ConcField("qryBins","Bin_IDs, P_Type, Bin_Tag","Bin_Tag","P_Type='" & [P_Type] & "' AND Bin_IDs=" & [Bin_IDs]) AS Bin_Tags,
qryBins.Bin_NumComps, Max(qryBins.Bin_CompNum) AS MaxBin_Comp
FROM qryBins
GROUP BY qryBins.P_Type, qryBins.Bin_NumComps, qryBins.Bin_IDs
ORDER BY IIf(Min([Bin_ID])=Max([Bin_ID]),Min([Bin_ID]),Min([Bin_ID]) & "-" & Max([Bin_ID]));
based on a query named qryBins like this:
Code:
SELECT tblBins.Bin_ID, Count(tblBins.Bin_ID) AS Bin_IDs, tblBins.P_Type, tblBins.Bin_Num, tblBins.Bin_Tag, tblBins.Bin_NumComps, tblBins.Bin_CompNum
FROM tblBins
GROUP BY tblBins.Bin_ID, tblBins.P_Type, tblBins.Bin_Num, tblBins.Bin_Tag, tblBins.Bin_NumComps, tblBins.Bin_CompNum;
Give it a try.
Cheers,
John