<?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 Best way to create table from selection VBA/ArcObject in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681321#M18314</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am looking for some advice on the best way to create a new non-spatial table from a selection. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it best to use the ICursor or ISelectionset interface, looping through each field/row, placing the value in a new ITable or is some other appraoch better? I am working in Arc 9.3 using VBA.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;More information&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-I have a non spatial table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Based on user inputs my program executes an sql statement, selecting rows that meet a certain criteria&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-I want to create a new table based on this selection&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 05 Feb 2011 03:41:31 GMT</pubDate>
    <dc:creator>DavidBirkigt</dc:creator>
    <dc:date>2011-02-05T03:41:31Z</dc:date>
    <item>
      <title>Best way to create table from selection VBA/ArcObject</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681321#M18314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am looking for some advice on the best way to create a new non-spatial table from a selection. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it best to use the ICursor or ISelectionset interface, looping through each field/row, placing the value in a new ITable or is some other appraoch better? I am working in Arc 9.3 using VBA.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;More information&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-I have a non spatial table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Based on user inputs my program executes an sql statement, selecting rows that meet a certain criteria&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-I want to create a new table based on this selection&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 05 Feb 2011 03:41:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681321#M18314</guid>
      <dc:creator>DavidBirkigt</dc:creator>
      <dc:date>2011-02-05T03:41:31Z</dc:date>
    </item>
    <item>
      <title>Re: Best way to create table from selection VBA/ArcObject</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681322#M18315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;not exactly what you need but you can probably modify it to make it work for you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;here is some code that selects featureas and exports the table selection to a text file... &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

Private Sub MakeHighwayDistrictBoundaryLists()

&amp;nbsp;&amp;nbsp;&amp;nbsp; 'finds unique values from pData.Field value in Polygon Layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pDoc As IMxDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pDoc = ThisDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPointLayer = pDoc.FocusMap.Layer(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPolyLayer = pDoc.FocusMap.Layer(10)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set Polygon Layer name for labelling output table
&amp;nbsp;&amp;nbsp;&amp;nbsp; strLName = pPolyLayer.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; strPolyVariable = "DISTRICT"
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeList
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
End Sub

Private Sub MakeList()

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pDoc As IMxDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pDoc = ThisDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMap = pDoc.FocusMap
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pData As IDataStatistics
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCursor As ICursor
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pEnumVar As IEnumVariantSimple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTable As ITable
&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;&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;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTable = pPolyLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pCursor = pTable.Search(Nothing, False)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pData = New DataStatistics
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData.Field = strPolyVariable
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pData.Cursor = pCursor
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnumVar = pData.UniqueValues
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value = pEnumVar.Next
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim DiagCollection As New Collection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Inst
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until IsEmpty(Value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Value = " " Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value = pEnumVar.Next
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&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; 'Selects Polygon form pPolyLayer that match the variable Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSelectedPoly As IFeatureSelection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSelectedPoly = pPolyLayer 'QI
&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;&amp;nbsp; Dim strQuery As String
&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;&amp;nbsp; If strPolyVariable = "ZIPCODE" Or strPolyVariable = "SANAREA" Or strPolyVariable = "DISTRICT" Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strQuery = strPolyVariable &amp;amp; " = " &amp;amp; Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strQuery = strPolyVariable &amp;amp; " = " &amp;amp; "'" &amp;amp; Value &amp;amp; "'"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&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;&amp;nbsp; 'Set Polygon Layer field value labelling output table; getting rid of losts of stuff for outputting a valid fieldname every time
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFName = Replace(Replace(Replace(Replace(Value, "Weekly Bag Service + ", ""), " ", "_"), ",", "_and"), "/", "_")
&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;&amp;nbsp; Dim pFilter As IQueryFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFilter = New QueryFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFilter.WhereClause = strQuery
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSelectedPoly.SelectFeatures pFilter, esriSelectionResultNew, False
&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;&amp;nbsp; 'select all features in pPointLayer that intersect the selected features in pPolyLayer (selected using pSelectedPoly)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFCur As IFeatureCursor
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFCur = pPointLayer.FeatureClass.Search(Nothing, False)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFSel2 As IFeatureSelection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFSel2 = pPointLayer
&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;&amp;nbsp;&amp;nbsp; 'get the selection set for layer 1 and the ids for the selected features
&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;&amp;nbsp; Dim pSelectionSet As ISelectionSet
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFSel1 As IFeatureSelection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFSel1 = pPolyLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSelectionSet = pFSel1.SelectionSet
&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;&amp;nbsp; Dim pEnumIDs As IEnumIDs
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pEnumIDs = pSelectionSet.IDs
&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;&amp;nbsp; Dim pGeoCollection As IGeometryCollection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pGeoCollection = New GeometryBag
&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;&amp;nbsp; Dim i As Long
&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;&amp;nbsp; For i = 1 To pSelectionSet.Count
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGeoCollection.AddGeometry pPolyLayer.FeatureClass.GetFeature(pEnumIDs.Next).Shape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i
&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;&amp;nbsp; Dim pSpatialFilter As ISpatialFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSpatialFilter = New SpatialFilter
&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;&amp;nbsp;&amp;nbsp; With pSpatialFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set .Geometry = pGeoCollection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .GeometryField = "Shape"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .SpatialRel = esriSpatialRelContains
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With
&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;&amp;nbsp; pFSel2.SelectFeatures pSpatialFilter, esriSelectionResultNew, False
&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;&amp;nbsp; Dim pSelectionSet2 As ISelectionSet
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFSelect2 As IFeatureSelection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFSelect2 = pPointLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSelectionSet2 = pFSelect2.SelectionSet
&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;&amp;nbsp; If pSelectionSet2.Count &amp;gt; 0 Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExportSelSetFeatureLayertoTable
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value = pEnumVar.Next
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop

End Sub

Public Sub ExportSelSetFeatureLayertoTable()

&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pDoc As IMxDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pDoc = ThisDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMap = pDoc.FocusMap
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get the selected layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTable As ITable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pFLayer As IFeatureLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSelItem As IUnknown
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSelItem = pDoc.SelectedItem
&amp;nbsp;&amp;nbsp;&amp;nbsp; If pSelItem Is Nothing Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "Please select a feature feature layer."
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub
&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf TypeOf pSelItem Is IFeatureLayer Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFLayer = pSelItem
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pTable = pFLayer.FeatureClass
&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "Please select a feature feature layer."
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Confirm layer to be used with user
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get the dataset name for the input table
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pDataset As IDataset
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pDSName As IDatasetName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pDataset = pTable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pDSName = pDataset.FullName
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Get the output dataset name ready. In this
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' case we are creating a text file in c:\temp
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWkSpFactory As IWorkspaceFactory
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWkSp As IWorkspace
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWkSpDS As IDataset
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWkSpName As IWorkspaceName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOutDSName As IDatasetName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim lblnValidFile As Boolean
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strFileName As String, strFileLocation As String
&amp;nbsp;&amp;nbsp;&amp;nbsp; strFileName = strLName &amp;amp; strFName &amp;amp; ".txt"
&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; strFileLocation = "V:\temp\"
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWkSpFactory = New TextFileWorkspaceFactory
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWkSp = pWkSpFactory.OpenFromFile(strFileLocation, 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWkSpDS = pWkSp
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWkSpName = pWkSpDS.FullName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOutDSName = New TableName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOutDSName.Name = strFileName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOutDSName.WorkspaceName = pWkSpName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pQueryFilter As IQueryFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pQueryFilter = New QueryFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strField1 As String, strField2 As String, strField3 As String, strField4 As String, strField5 As String, strField6 As String, strField7 As String
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField1 = "NAME"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField2 = "PHONE"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField3 = "ADDRESS"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField4 = "CITY"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField5 = "STATE"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField6 = "ZIP"
&amp;nbsp;&amp;nbsp;&amp;nbsp; strField7 = "COUNTY"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Checking table for required fields
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim colTableFields As New Collection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField6
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colTableFields.Add strField7
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strcolTableFields As Variant, chkFieldExists As Long, strProblemMessage As String
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each strcolTableFields In colTableFields
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chkFieldExists = pTable.FindField(strcolTableFields)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If chkFieldExists = -1 Then
&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; strProblemMessage = strProblemMessage &amp;amp; "Missing field in " &amp;amp; pDataset.Name &amp;amp; ": " &amp;amp; strcolTableFields &amp;amp; vbCrLf
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strProblemMessage &amp;lt;&amp;gt; "" Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "Problem with fields. " &amp;amp; vbCrLf &amp;amp; strProblemMessage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'End
&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stop
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strSubFields As String
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Once residential and commercial is implemented, strField7 should not be exported
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSubFields = strField1 &amp;amp; ", " &amp;amp; strField2 &amp;amp; ", " &amp;amp; strField3 &amp;amp; ", " &amp;amp; strField4 &amp;amp; ", " &amp;amp; strField5 &amp;amp; ", " &amp;amp; strField6 &amp;amp; ", " &amp;amp; strField7
&amp;nbsp;&amp;nbsp;&amp;nbsp; pQueryFilter.SubFields = strSubFields
&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; Dim pFeatureSel As IFeatureSelection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFeatureSel = pFLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSelSet As ISelectionSet2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pSelSet = pFeatureSel.SelectionSet
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Export selected set of records to text file
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pExpOp As IExportOperation
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pExpOp = New ExportOperation
&amp;nbsp;&amp;nbsp;&amp;nbsp; pExpOp.ExportTable pDSName, pQueryFilter, pSelSet, pOutDSName, Application.hWnd
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Not required can comment out after debugging
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' add the table to map
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pName As IName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pNewTable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pStTab As IStandaloneTable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pStTabColl As IStandaloneTableCollection
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pName = pOutDSName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pNewTable = pName.Open
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pStTab = New StandaloneTable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pStTab.Table = pNewTable
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pStTabColl = pMap
&amp;nbsp;&amp;nbsp;&amp;nbsp; pStTabColl.AddStandaloneTable pStTab
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pDoc.UpdateContents
&amp;nbsp; 
End Sub

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:40:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681322#M18315</guid>
      <dc:creator>maxsteinbrenner</dc:creator>
      <dc:date>2021-12-12T04:40:55Z</dc:date>
    </item>
    <item>
      <title>Re: Best way to create table from selection VBA/ArcObject</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681323#M18316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Max,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I ended up using a similar method to get the job done.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Feb 2011 01:39:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681323#M18316</guid>
      <dc:creator>DavidBirkigt</dc:creator>
      <dc:date>2011-02-09T01:39:28Z</dc:date>
    </item>
    <item>
      <title>Re: Best way to create table from selection VBA/ArcObject</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681324#M18317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Not sure exactly what are the requirements but IFeatureDataConverter2 has a method, ConvertTable, that might do similar thing that you are describing without recreating the table and loading row by row.&amp;nbsp; Another alternative you can look into.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steve&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Feb 2011 18:45:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/best-way-to-create-table-from-selection-vba/m-p/681324#M18317</guid>
      <dc:creator>SteveFang</dc:creator>
      <dc:date>2011-02-09T18:45:56Z</dc:date>
    </item>
  </channel>
</rss>

