banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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

 

#3 Wed 01 July 2009 17:38

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Probleme VBA ArcGIS

Merci pour le suivi smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB