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

Printemps des cartes 2024

#1 Tue 16 March 2010 16:16

johan.UPS
Participant occasionnel
Date d'inscription: 8 Mar 2010
Messages: 12

[MapInfo 7.x] Remplir un champ si une condition est vérifiée

Bonjour,

Je dois remplir un champ si une condition est vérifiée. Ici par exemple c'est si mon ID est pair ou impair. J'ai récupéré la formule pour sélectionner les éléments pairs Select*from "ma table" where "ID" MOD2 = 0 et j'aimerais updater mon champ avec une valeur "Sud", ensuite faire de même avec les nombres impairs et la valeur "Nord" ...

Sauriez quoi rajouter dans ma fenetre mapBasic pour que ceci fonctionne ? J'avais pensé à du if then else mais apparemment ce langage n'est pas reconnu ...

Merci à tous,

Cordialement

Hors ligne

 

#2 Tue 16 March 2010 16:52

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Bonjour

c'est assez simple en fait.
tu sélectionnes tous les éléments pair, dans une query affichée. Ensuite tu mets à jour le champ de cette query que tu veux modifier sur la table d'origine.
Tu fais de même avec les éléments impairs et hop c'est fait.
Normalement tu n'as pas besoin de la fenêtre mapbasic pour le faire.

cordialement.

Dernière modification par Damien BEAUSEIGNEUR (Tue 16 March 2010 16:52)

Hors ligne

 

#3 Tue 16 March 2010 16:57

johan.UPS
Participant occasionnel
Date d'inscription: 8 Mar 2010
Messages: 12

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Hmmm le soucis c'est qu'à chaque fois que l'on met un champs a jour ce qui n'est pas sélectionné est effacé, je me retrouve une fois sur deux avec mes cases pairs ou impairs nettoyées...

Hors ligne

 

#4 Tue 16 March 2010 18:18

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Bonjour,

Pour éviter d'effacer les champs non-sélectionnés, il faut effectuer la mise à jour sur la requête et non sur la table.
Dans la fenêtre «Mettre à jour colonne» Sélectionnez «Querry1» (Querry le numéro de votre dernière requête, en fait) ou «Sélection».
Dans votre table, les champs sélectionnés seront modifiés et les non-sélectionnés resteront intacts.

Dernière modification par Marc-André (Tue 16 March 2010 18:19)

Hors ligne

 

#5 Tue 16 March 2010 18:50

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Salut,

Oh je connais cette requète ---> Select*from "ma table" where "ID" MOD2 = 0
Il te suffit avec la FMB de faire:

Code:

Select*from "ma table" where "ID" MOD2 = 0 into Sud
Update Sud Set TonChamps="Sud"

Puis

Code:

Select*from "ma table" where "ID" MOD2 <> 0 into Nord
Update Nord Set TonChamps="Nord"

Attention il faut sélectionner les 2 lignes avant de faire "enter" dans la FMB sinon elle ne prendras en compte que la dernière ligne.
A+
Joël

Hors ligne

 

#6 Tue 16 March 2010 19:23

johan.UPS
Participant occasionnel
Date d'inscription: 8 Mar 2010
Messages: 12

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Merci pour vos deux techniques !!!

Hors ligne

 

#7 Fri 20 September 2013 14:40

aurelka.g
Juste Inscrit !
Date d'inscription: 2 Sep 2013
Messages: 9

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Bonjour,

j'ai également un problème avec la fonction "If" qui n'est pas reconnue et je ne comprends vraiment pas pourquoi.
J'aimerai modifié un champ en fonction du ratio obtenu entre les valeurs de deux autres champs. Par exemple (en version simplifiée) Si ce ratio est supérieur à une certaine valeur je mets un "A" si il est inférieur, je mets un "B".

J'ai le code écris  suivre:

Dim Champ1 as Alias
Dim Champ2 as Alias
Dim Champ3 as Alias

fetch first from Ma_Table

If  (Champ2/Champ1  >1.75) Then
update Ma_Table set Champ3 = "A"
Else "B"
End if
fetch next from Ma_Table

Lorsque j'essayé de faire tourner le code, il m'écrit "la fonction "if" n'est pas reconnue. Que puis-je faire pour faire reconnaitre cette fonction?


Merci

Hors ligne

 

#8 Fri 20 September 2013 18:48

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapInfo 7.x] Remplir un champ si une condition est vérifiée

Salut,

J'aurais écrit ça comme ceci:

Code:

If  (Champ2/Champ1  >1.75) Then
update Ma_Table set Champ3 = "A"
Else
update Ma_table set Champ3="B"
End if

Une petite question --> C'est le développement d'un .mbx que tu veux faire, ou la modification de ta table?
Une autre possibilité si tu veux uniquement incrémenter ta table.
Dans la FMB:

Code:

Select * from Ta_Table where Champ2/Champ1  > 1.75 into Resultat1
Update Resultat1 set Champ3="A"
Select * from Ta_Table where Champ2/Champ1  <= 1.75 into Resultat2
Update Resultat2 set Champ3="B"

PS:N'oublie pas de sélectionner tout le code avant la validation dans la FMB sinon elle ne prendra en compte que la dernière ligne wink
A+
Joël

Dernière modification par Spacejo (Fri 20 September 2013 19:15)

Hors ligne

 

Pied de page des forums

Powered by FluxBB