Pages: 1
- Sujet précédent - [MapInfo 7.x] Remplir un champ si une condition est vérifiée - Sujet suivant
#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
A+
Joël
Dernière modification par Spacejo (Fri 20 September 2013 19:15)
Hors ligne
Pages: 1
- Sujet précédent - [MapInfo 7.x] Remplir un champ si une condition est vérifiée - Sujet suivant