在VBA中选择重复的行

时间:2010-05-25 03:41:27

标签: duplicates arcobjects

ArcGIS 9.3 Arcobject

我想在下面的字段中选择每个重复SID的一行。 (形状文件的属性表)

优先级是R> S = I> 0
因此,在SID 87中,将选择FID1 (SID 88,状态为S + I)
(将选择SID 89,FID 6)

请建议VBA线路进行选择和谢谢。

FID    SID    STATUS 
 1     87       R
 2     87       O
 3     88       I
 4     88       S
 5     89       I
 6     89       R      
 7     89       I
 8     89       S

1 个答案:

答案 0 :(得分:0)

这可能不是最佳方式,但你可以尝试这样的事情:

  1. 使用带有null QueryFilter的ITable.Search打开表中所有行的游标。
  2. 创建一个DataStatistics对象,并将光标传递给IDataStatistics.Cursor属性。
  3. 使用IDataStatistics.UniqueValues属性获取表中唯一的SID值集。
  4. 对于每个唯一的SID值,使用ITable.Search打开包含具有SID的所有行的游标。
  5. 使用您描述的逻辑,确定应添加到特定SID选择的行的FID。
  6. 创建一个SelectionSet对象,将表设置为对象。使用Add方法添加单行或使用AddList方法将行列表添加到选择集。
  7. 使用此SelectionSet在shapefile上设置IFeatureSelection.SelectionSet属性。
  8. 抱歉,因为我是新手,我无法发布超链接到帮助,但这里是ArcObjects 9.3的VB6帮助的起始页:

    http://resources.esri.com/help/9.3/arcgisengine/com_cpp/vb6_start.htm