#1 Tue 30 June 2009 19:53
- KapaopangoBZH
- Participant occasionnel
- Lieu: Angers
- Date d'inscription: 27 Dec 2007
- Messages: 13
Probleme VBA ArcGIS
Bonjour, je suis débutant dans l'univers de la programmation ArcGIS. Et je travaille sur une base de données ACCESS que j'ai directement intégré dans mon mxd.
Mon problème est que je cherche à afficher dans une ListBox les noms de champs issus d'une requête sémantique. Sur le net, les exemples traitant l'affichage des champs concernent uniquement des couches géographiques. Or mes couches ne sont pas géographiques.
Voici mon code:
Code:
For i = 0 To pTabColl.TableCount - 1 Set pdataset = pTabColl.Table(i) Set pTdonnees = pdataset Set pCursor_2 = pTdonnees.Search(Nothing, False) Set pRow = pCursor_2.NextRow If Not (IsNull(pRow.Value(pTdonnees.FindField("THEME")))) Then str_theme = pRow.Value(pTdonnees.FindField("THEME")) If str_theme = cbbTheme.Value Then Set pqf = New QueryFilter pqf.SubFields = "" Do While Not pRow Is Nothing Set pCursor3 = pTdonnees.Search(pqf, False) Set pRow2 = pCursor3.NextRow Set pField = pCursor3.Fields.Field.AliasName str_Champs = pField.Name ListBox1.AddItem str_Champs Loop End If Set pRow = pCursor_2.NextRow End If Next
En gros à partir d'une requête je parcoure les couches de ma database et si ma requête est vérifiée dans ces couches je veux parcourir et afficher les noms des différents champs.
Ici le problème est concentré dans la boucle Do While. Où je ne vois pas comment instancier pCursor pRow et pField. Si quelqu'un peut m'expliquer et m'aider à trouver une solution ça serait super sympa!!!
Merci à vous
Hors ligne
#2 Wed 01 July 2009 16:31
- KapaopangoBZH
- Participant occasionnel
- Lieu: Angers
- Date d'inscription: 27 Dec 2007
- Messages: 13
Re: Probleme VBA ArcGIS
C'est bon j'ai enfin trouvé la solution!! En fait il fallait passer par un IFields. Jr rajoute le code pour ceux que ça pourrait intéresser.
Code:
For i = 0 To pTabColl.TableCount - 1 Set pdataset = pTabColl.Table(i) Set pTdonnees = pdataset 'str_Champs = pTdonnees.OIDFieldName Set pCursor_2 = pTdonnees.Search(Nothing, False) Set pRow = pCursor_2.NextRow If Not (IsNull(pRow.Value(pTdonnees.FindField("THEME")))) Then str_theme = pRow.Value(pTdonnees.FindField("THEME")) If str_theme = cbbTheme.Value Then 'Set pqf = New QueryFilter 'pqf.SubFields = "" Do While pRow2 Is Nothing Set pCursor3 = pTdonnees.Search(Nothing, False) Set pRow2 = pCursor3.NextRow Set pfields = pCursor3.Fields int_NBChamps = pfields.FieldCount For j = 0 To int_NBChamps - 1 'str_Champs = pField.Name ListBox1.AddItem pfields.Field(j).Name Next Set pRow2 = pCursor3.NextRow Loop End If Set pRow = pCursor_2.NextRow End If Next
Hors ligne