<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Concatenate duplicate Field (code by Miles Hitchen need modification) in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508070#M13656</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Even though your field is of type Double, the field name is still a string.&amp;nbsp; Just change your constant back to a String type:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'Const LOCATIONID_FIELD As Double = "GID1"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const LOCATIONID_FIELD As String = "GID1"&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 Jun 2010 15:18:37 GMT</pubDate>
    <dc:creator>JeffMatson</dc:creator>
    <dc:date>2010-06-03T15:18:37Z</dc:date>
    <item>
      <title>Concatenate duplicate Field (code by Miles Hitchen need modification)</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508069#M13655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dear, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a shp file, whose attribute table contains duplicate rows with the same GID1 (esritypedouble).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Among the duplicate rows, their status could be R, S, W, O.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I wanna merge the status into one string field.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For instance, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;GID1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;434&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R S&amp;nbsp; W&amp;nbsp; =&amp;gt;&amp;nbsp;&amp;nbsp; R, S, W&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found the relevant code below but could not implement in my shoes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(typemismatch in &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const LOCATIONID_FIELD As Double = "GID1")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Please kindly help and thanks. (the attached shp for use)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Public Sub ConcatenateField()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Removes duplicate records (based on LocationID field)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Concatenating the Business field.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' ---- Modify these values as appropriate ----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const LOCATIONID_FIELD As Double = "GID1"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const BUSINESS_FIELD As String = "C0440"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' --------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSATblColl As IStandaloneTableCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTbl As ITable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pCsr As ICursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pRow As IRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pNxtRow As IRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sLocID As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sNxtLocID As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sBus As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sNxtBus As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim lLocIdx As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim lBusIdx As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sConcat As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTblSort As ITableSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pEditor As IEditor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pID As New UID&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Make sure we're in an edit session&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pID.Value = "esriEditor.Editor"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEditor = Application.FindExtensionByCLSID(pID)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pEditor.EditState = esriStateNotEditing Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "Please Start An Edit Session On The Table"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get a ref to the first table in the map&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSATblColl = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTbl = pSATblColl.StandaloneTable(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get the field indexes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lLocIdx = pTbl.FindField(LOCATIONID_FIELD)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lBusIdx = pTbl.FindField(BUSINESS_FIELD)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get a sorted cursor on the table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTblSort = New TableSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; With pTblSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set .Table = pTbl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Fields = LOCATIONID_FIELD + "," + BUSINESS_FIELD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Ascending(LOCATIONID_FIELD) = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Ascending(BUSINESS_FIELD) = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Sort Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Start an edit operation (so that it can be undone)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEditor.StartOperation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Loop thru all the sorted records&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pCsr = pTblSort.Rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sLocID = CStr(pRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = "," + pRow.Value(lBusIdx) + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pNxtRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not pNxtRow Is Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sNxtLocID = CStr(pNxtRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If sNxtLocID = sLocID Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Concatenate the Business field for duplicate records&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' and delete the duplicates.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Only concatenate unique Business field entries&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sNxtBus = pNxtRow.Value(lBusIdx)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If InStr(sBus, "," + sNxtBus + ",") = 0 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = sBus + sNxtBus + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pNxtRow.Delete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Store the record with the concatenated Business field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = Mid(sBus, 2, Len(sBus) - 2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = Replace(sBus, ",", ", ")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRow.Value(lBusIdx) = sBus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRow.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRow = pNxtRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sLocID = CStr(pRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = "," + pRow.Value(lBusIdx) + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get the next record&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pNxtRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Store the last record&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = Mid(sBus, 2, Len(sBus) - 2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBus = Replace(sBus, ",", ", ")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRow.Value(lBusIdx) = sBus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRow.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Stop the edit operation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEditor.StopOperation "Concatenate Field"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Inform the user we've finished&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "Concatenation completed", vbInformation, ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 11:24:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508069#M13655</guid>
      <dc:creator>ElaineKuo</dc:creator>
      <dc:date>2010-06-03T11:24:40Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate duplicate Field (code by Miles Hitchen need modification)</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508070#M13656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Even though your field is of type Double, the field name is still a string.&amp;nbsp; Just change your constant back to a String type:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'Const LOCATIONID_FIELD As Double = "GID1"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const LOCATIONID_FIELD As String = "GID1"&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 15:18:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508070#M13656</guid>
      <dc:creator>JeffMatson</dc:creator>
      <dc:date>2010-06-03T15:18:37Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate duplicate Field (code by Miles Hitchen need modification)</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508071#M13657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dear, Thanks for the help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here I have one more question.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code was designed for standalone tables.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible to convert it for feature classes ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Public Sub ConcatenateField()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Removes duplicate records (based on LocationID field)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Concatenating the Business field.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' ---- Modify these values as appropriate ----&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const LOCATIONID_FIELD As Double = "GID1"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Const BUSINESS_FIELD As String = "C0440"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' --------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pSATblColl As IStandaloneTableCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTbl As ITable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pCsr As ICursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pRow As IRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pNxtRow As IRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sLocID As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sNxtLocID As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sBus As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sNxtBus As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim lLocIdx As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim lBusIdx As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim sConcat As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pTblSort As ITableSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pEditor As IEditor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pID As New UID&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Make sure we're in an edit session&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pID.Value = "esriEditor.Editor"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pEditor = Application.FindExtensionByCLSID(pID)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If pEditor.EditState = esriStateNotEditing Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MsgBox "Please Start An Edit Session On The Table"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Exit Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Get a ref to the first table in the map&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pMxDoc = ThisDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pSATblColl = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTbl = pSATblColl.StandaloneTable(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Get the field indexes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;lLocIdx = pTbl.FindField(LOCATIONID_FIELD)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;lBusIdx = pTbl.FindField(BUSINESS_FIELD)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Get a sorted cursor on the table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pTblSort = New TableSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;With pTblSort&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set .Table = pTbl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.Fields = LOCATIONID_FIELD + "," + BUSINESS_FIELD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.Ascending(LOCATIONID_FIELD) = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.Ascending(BUSINESS_FIELD) = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.Sort Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End With&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Start an edit operation (so that it can be undone)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pEditor.StartOperation&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Loop thru all the sorted records&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pCsr = pTblSort.Rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sLocID = CStr(pRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = "," + pRow.Value(lBusIdx) + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pNxtRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;While Not pNxtRow Is Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sNxtLocID = CStr(pNxtRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If sNxtLocID = sLocID Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Concatenate the Business field for duplicate records&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' and delete the duplicates.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Only concatenate unique Business field entries&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sNxtBus = pNxtRow.Value(lBusIdx)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If InStr(sBus, "," + sNxtBus + ",") = 0 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = sBus + sNxtBus + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pNxtRow.Delete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'Store the record with the concatenated Business field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = Mid(sBus, 2, Len(sBus) - 2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = Replace(sBus, ",", ", ")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pRow.Value(lBusIdx) = sBus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pRow.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pRow = pNxtRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sLocID = CStr(pRow.Value(lLocIdx))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = "," + pRow.Value(lBusIdx) + ","&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;' Get the next record&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pNxtRow = pCsr.NextRow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wend&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Store the last record&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = Mid(sBus, 2, Len(sBus) - 2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sBus = Replace(sBus, ",", ", ")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pRow.Value(lBusIdx) = sBus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pRow.Store&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Stop the edit operation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pEditor.StopOperation "Concatenate Field"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' Inform the user we've finished&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MsgBox "Concatenation completed", vbInformation, ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 22:23:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508071#M13657</guid>
      <dc:creator>ElaineKuo</dc:creator>
      <dc:date>2010-06-03T22:23:20Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate duplicate Field (code by Miles Hitchen need modification)</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508072#M13658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here is a sample written by Michael Knight, that I had saved long ago - basically you can replace:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ITable with IFeatureClass &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ICursor with IFeatureCursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IRow with IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sub LoopThroughFeatures()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFLayer As IFeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFClass As IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFCursor As IFeatureCursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFeature As IFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMxDoc = Application.Document&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFLayer = pMap.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFClass = pFLayer.FeatureClass&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFCursor = pFClass.Search(Nothing, False) 'change to True if editing features&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeature = pFCursor.NextFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do While Not pFeature Is Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Debug.Print pFeature.OID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeature = pFCursor.NextFeature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jun 2010 17:34:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/concatenate-duplicate-field-code-by-miles-hitchen/m-p/508072#M13658</guid>
      <dc:creator>JeffMatson</dc:creator>
      <dc:date>2010-06-04T17:34:51Z</dc:date>
    </item>
  </channel>
</rss>

