David & Joanne Gould
dajomigo at tpg.com.au
Thu Dec 8 18:53:57 CST 2005
Thank you to all those who offered suggestions. The solution I used was to change to DAO. Below I have included a copy of the final module: '************ Code Start ********** 'This code was originally written by Dev Ashish 'It is not to be altered or distributed, 'except as part of an application. 'You are free to use it in any application, 'provided the copyright notice is left unchanged. ' 'Code Courtesy of 'Dev Ashish ' Function fConcatChild(strChildTable As String, _ strIDName As String, _ strFldConcat As String, _ strIDType As String, _ varIDvalue As Variant) _ As String 'Returns a field from the Many table of a 1:M relationship 'in a semi-colon separated format. ' 'Usage Examples: ' ?fConcatChild("Order Details", "OrderID", "Quantity", _ "Long", 10255) 'Where Order Details = Many side table ' OrderID = Primary Key of One side table ' Quantity = Field name to concatenate ' Long = DataType of Primary Key of One Side Table ' 10255 = Value on which return concatenated Quantity ' 'Dim db As Database 'Dim rs As Recordset Dim varConcat As Variant Dim strCriteria As String, strSQL As String Dim db As DAO.Database Dim rs As DAO.Recordset On Error GoTo Err_fConcatChild varConcat = Null Set db = CurrentDb strSQL = "Select [" & strFldConcat & "] From [" & strChildTable & "]" strSQL = strSQL & " Where " Select Case strIDType Case "String": strSQL = strSQL & "[" & strIDName & "] = '" & varIDvalue & "'" Case "Long", "Integer", "Double": 'AutoNumber is Type Long strSQL = strSQL & "[" & strIDName & "] = " & varIDvalue Case Else GoTo Err_fConcatChild End Select Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot) 'Are we sure that 'sub' records exist With rs If .RecordCount <> 0 Then 'start concatenating records Do While Not rs.EOF varConcat = varConcat & rs(strFldConcat) & ";" .MoveNext Loop End If End With 'That's it... you should have a concatenated string now 'Just Trim the trailing ; fConcatChild = Left(varConcat, Len(varConcat) - 1) Exit_fConcatChild: Set rs = Nothing: 'Set db = Nothing Exit Function Err_fConcatChild: Resume Exit_fConcatChild End Function '************ Code End **********