prabha_friend
Prabhakaran Karuppaih
- Local time
- Today, 14:14
- Joined
- Mar 22, 2009
- Messages
- 1,026
Code:
Function DCon(FieldToConcatenate As String, TableName As String, Criteria As String, Optional ConChar As Variant, Optional SkipSameValues As Variant) As String
Dim RecordsetToConcatenate As Recordset
Dim ConString As String
Set RecordsetToConcatenate = CurrentDb.OpenRecordset("SELECT * FROM " & TableName & " WHERE " & Criteria & ";")
While Not RecordsetToConcatenate.EOF
With RecordsetToConcatenate
If .AbsolutePosition = 0 Then
ConString = .Fields(FieldToConcatenate).Value
Else
If IsMissing(SkipSameValues) Then
ConString = ConString & IIf(Not IsMissing(ConChar), ConChar, ",") & .Fields(FieldToConcatenate).Value
Else
'Do Skipping
If .AbsolutePosition = .RecordCount - 1 Then 'No Next Record Available (Last Record)
If InStr(ConString, .Fields(FieldToConcatenate).Value) = 0 Then
ConString = ConString & IIf(Not IsMissing(ConChar), ConChar, ",") & .Fields(FieldToConcatenate).Value
End If
Else
Do Until (.Fields(FieldToConcatenate).Value <> ValueonNextRecord(RecordsetToConcatenate, FieldToConcatenate))
If .Fields(FieldToConcatenate).Value <> ValueonNextRecord(RecordsetToConcatenate, FieldToConcatenate) Then
GoTo MoveNext 'No need to put .movenext on "else" criteria
End If
.MoveNext
Loop
If InStr(ConString, .Fields(FieldToConcatenate).Value) = 0 Then
ConString = ConString & IIf(Not IsMissing(ConChar), ConChar, ",") & .Fields(FieldToConcatenate).Value
End If
End If
End If
End If
MoveNext:
.MoveNext
End With
Wend
DCon = ConString
End Function