2010-05-25 10 views
0

ArcGIS 9.3 Arcobjectligne de sélection parmi les dupliqués dans VBA

Je veux sélectionner une rangée de chaque SIDs dupliquées dans un champ ci-dessous. (une table d'attributs d'un fichier de forme)

La priorité est R> S = I> 0
Par conséquent, parmi les SID 87, FID1 sera sélectionné.
(SID 88, STATUS sera S + I)
(SID 89, 6 sera FID choisi)

S'il vous plaît veuillez en informer le cordon VBA pour exécuter la sélection et merci.

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 

Répondre

0

Cela pourrait ne pas être la meilleure façon, mais vous pouvez essayer quelque chose comme ceci:

  1. Utilisez ITable.Search avec un QueryFilter null pour ouvrir un curseur de toutes les lignes de la table.
  2. Créez un objet DataStatistics et transmettez le curseur à la propriété IDataStatistics.Cursor.
  3. Utilisez la propriété IDataStatistics.UniqueValues ​​pour obtenir l'ensemble des valeurs SID uniques dans la table.
  4. Pour chaque valeur SID unique, utilisez ITable.Search pour ouvrir un curseur contenant toutes les lignes ayant le SID.
  5. En utilisant la logique que vous avez décrite, déterminez le FID de la ligne qui doit être ajoutée à la sélection pour le SID spécifique.
  6. Créez un objet SelectionSet en définissant votre table en tant qu'objet. Utilisez la méthode Add pour ajouter une seule ligne ou la méthode AddList pour ajouter une liste de lignes à l'ensemble de sélection.
  7. Utilisez ce SelectionSet pour définir la propriété IFeatureSelection.SelectionSet sur le fichier de formes.

Désolé, parce que je suis nouveau, je ne peux pas poster des liens hypertextes à l'aide, mais voici la page de départ à l'aide de VB6 pour ArcObjects 9.3:

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