Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

#1 Tue 10 February 2009 19:26

laurent nappez
Participant occasionnel
Date d'inscription: 15 Jun 2008
Messages: 34

ArcGIS92 - calculer champ en VBA (conditionnel)

Bonjour à tous,

je souhaite calculer un champ à l'aide des valeurs de deux autres champs de la même table.
Voici l’expression utilisée :

If [Cr1] > [Se1] Then [score1] = 1
Else = 0
End if

J’obtiens toujours un message d’erreur de script. Quelqu’un a-t-il une idée ?

Merci d’avance de vos suggestions.
laurent

Hors ligne

 

#2 Tue 10 February 2009 19:56

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

If [Cr1] > [Se1] Then [score1] = 1
Else [score1] = 0
End if


non ?


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#3 Tue 10 February 2009 20:04

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

Jérôme C a écrit:

[non ?


Bonjour
Superbe réponse Jérôme lol tongue

Daniel


De retour à la géomatique

Hors ligne

 

#4 Tue 10 February 2009 21:12

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

Finalement, j'avais tord, il y avait encore un petit truc,

spacejo l'explique bien à côté : http://www.forumsig.org/showthread.php?t=21673

Remplacer [score1] par une variable, puis mettre cette variable dans le champ de saisie juste en dessous.


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#5 Wed 11 February 2009 13:55

laurent nappez
Participant occasionnel
Date d'inscription: 15 Jun 2008
Messages: 34

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

oui effectivement, remplacer [score1] par C par exemple. Mais après, avoir défini le champ de la sorte: 'Dim C as long', il faut encore dire C=[score1], non ? c'est ce que tu signifies par "mettre cette variable dans le champ de saisie juste en dessous" ?

merci de votre aide à tous
laurent

Hors ligne

 

#6 Wed 11 February 2009 20:42

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

Coche bien la case "Avancé" pour faire des calculs en VBA. Tu verras les deux champs !


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#7 Thu 12 February 2009 05:21

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

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

Il est possible d'utiliser l'instruction Case aussi, ça peut être plus simple selon les cas wink

Robin.

Hors ligne

 

#8 Thu 12 February 2009 13:32

laurent nappez
Participant occasionnel
Date d'inscription: 15 Jun 2008
Messages: 34

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

J'ai coché la case "Advanced" et mon expression apparaît bien dans le "Pre-logic VBA Script Code" comme en bas, où il est écrit "[score1]=".
Avec la fonction Case, cela donnerait-il par exemple ?
Select Case "A"
A=[Cr2]

Hors ligne

 

#9 Thu 12 February 2009 14:06

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

Re: ArcGIS92 - calculer champ en VBA (conditionnel)

Pas vraiment, en fait.

Ca donnerait plutôt ce qui suit :

Code:

Dim Mavariable as integer

Select Case True 
  Case [Cr1] > [Se1]
  MaVariable = 0
  Case [Cr1] <= [Se1]
  MaVariable = 1
End select

Voilà un exemple d'utilisation de l'instruction Case pour que ça soit plus clair pour classer un champ selon ses valeurs :

Dans la boîte du haut :

Code:

Dim Mavariable as integer

Select Case True 
  Case  [Pente]  < 0.06
   Mavariable = 0
  Case  [Pente]  >= 0.06 AND [Pente]  <= 0.1
   Mavariable = 1
  Case  [Pente]   > 0.1
   Mavariable = 2
End select

Dans la boîte du bas :

Code:

Mavariable

Dernière modification par Robin (Thu 12 February 2009 14:07)

Hors ligne

 

Pied de page des forums

Powered by FluxBB