#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
NextEn 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
NextHors ligne


