Pages: 1
- Sujet précédent - [ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA - Sujet suivant
#1 Mon 28 March 2011 10:26
- plouplou
- Participant occasionnel
- Date d'inscription: 3 Mar 2010
- Messages: 30
[ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA
Bonjour à tous,
J'ai essayé de me passer de votre aide pour régler ce problème, qui n'est qu'un simple problème de syntaxe, mais la je craque nerveusement ^^.
Donc voila le souci, j'ai une table "Arbres" où les arbres sont identifiés par un numéro de station. Une station comporte plusieurs arbres, et un arbre est relié à une seule station par le numéro de cette derniere.
Or, je voudrais que chaque arbre est un identifiant unique qui se composerait de son numéro de station d'un tiret puis d'un numéro de 1 à x que l'on incrémente.
j'ai donc créer un champ N_ arbre, dans lequel j'ai essayé de calculer ce numéro arbre via le calculateur de champ et ce code :
Code:
dim i as integer dim j as string i= [arbres.N_Station] j= [arbres.N_arbre] For i = 0 To 9438 j= i &"-" + 1 Next i end for
A chaque fois, j'ai le message d'erreur de syntaxe.
J'espère être quand même être pas loin du bon résultat ^^.
Merci d'avance pour vos réponses.
A +
Hors ligne
#2 Mon 28 March 2011 11:56
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: [ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA
Bonjour, je perçois quelques erreurs dans votre code.
1er = vous utilisez deux fois la variable i pour définir à la fois votre champ [arbres.N_Station] et à la fois dans la boucle ("For i = 0 to...")
2ème = il n'est pas nécessaire de faire une boucle dans le calculateur de champ pour chaque ligne de la table. En effet le code sera exécuté ligne par ligne.
Il ne vous est pas pssible à ma connaissance de faire un calcul incrémental puisque le code est exécuté ligne par ligne. Pourquoi ne pas utiliser le champ FID.
3ème = dans votre variable 'j' vous effectuez un calcul ("... +1") ce qui en doit pas plaire à ArcGIS.
la première des choses est de ce mettre en mode avancé
Ensuite assurez-vous que vous deux champs sont bien du type que vous leur attribuez dans le code
Voici un exemple de code :
Code:
dim resultat as string dim i as integer dim j as integer i= [arbres.N_Station] j= [FID] resultat = Cstr(i) & '_' & Cstr(j)
et puis
Code:
votre_champ = resultat
A+
Hors ligne
#3 Mon 28 March 2011 12:04
Re: [ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA
Il ne vous est pas pssible à ma connaissance de faire un calcul incrémental puisque le code est exécuté ligne par ligne.
Avec une variable "static", c'est possible, cf par exemple http://georezo.net/forum/viewtopic.php?id=70062
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#4 Mon 28 March 2011 12:24
- plouplou
- Participant occasionnel
- Date d'inscription: 3 Mar 2010
- Messages: 30
Re: [ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA
Bonjour et merci pour vos réponses.
Du coup, je vais essayer de m'inspirer de vos deux réponses pour calculer ce champ.
Merci encore
Dernière modification par plouplou (Mon 28 March 2011 12:27)
Hors ligne
Pages: 1
- Sujet précédent - [ArcGis] Boucle, concaténation et incrémentation dans l'editeur VBA - Sujet suivant