#1 Tue 29 July 2014 16:01
- diou
- Participant assidu
- Date d'inscription: 27 Jan 2008
- Messages: 171
aide mapbasic
Bonjour à tous,
Je suis à la recherche d'une ligne mapbasic pour répondre à cette problématique :
j'ai une colonne A / une colonne B /une colonne C
Je veux faire la phrase suivante :
Si colonne A=Z et colonne B=Y alors colonne C=Y
Pourriez vous me donner une formule avec "If"/"Where" et "then" ? Je n'arrive pas à trouver quelque chose que MI accepte, j'ai non stop des messages d'erreur ...
Par avance merci de votre aide
et longue vie à georezo
diou
Hors ligne
#2 Tue 29 July 2014 16:44
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: aide mapbasic
Salut,
J'écrirais ça comme ceci mais le mieux serait que l'on voit ton bout de code et les messages d'erreur générés
Code:
Dim A, B, C as alias If A=Z and B=Y then C=Y End if
A+
Joël
Hors ligne
#3 Tue 29 July 2014 16:58
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: aide mapbasic
Produire une boucle for et après produire des variables pour récupérer la valeur de la ligne de chaque colonne.
Commencer la boucle for i=0 to i_rec (récupérer le nombre de ligne)
Variable C = 0
Variable A = nom_colonne A.nom_table
Variable B = nom_colonne B.nom_table
Variable Z = nom_colonne Z.nom_table
Variable Y = nom_colonne Y.nom_table
Variable ID= nom_colonne ID.nom_table
.
.
.
.
Aprés faire
If Variable A = variable Z et Variable B =Variable Y
then
Variable C = Variable Y
Sélection de la valeur de la Variable ID puis faire la mise à jour de la colonne C
Fermer le IF ( end if)
Fermer la boucle (next)
Hors ligne
#4 Tue 29 July 2014 17:04
- diou
- Participant assidu
- Date d'inscription: 27 Jan 2008
- Messages: 171
Re: aide mapbasic
En gros il me dit "commande non reconnue : if." lorsque j'écris ton bout de code et quand j'ai essayé d'autre bout de code...
Hors ligne
#5 Tue 29 July 2014 17:08
- diou
- Participant assidu
- Date d'inscription: 27 Jan 2008
- Messages: 171
Re: aide mapbasic
merci didou72 je vais tester ça
Hors ligne
#6 Tue 29 July 2014 17:31
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: aide mapbasic
Pour i_rec il faut le définir avant par i_rec = tableinfo(nom_de_la_table , tab_info_nrows)
Fetch first from nom de la table
For i=1 to i_rec
Dernière modification par didou72 (Tue 29 July 2014 17:33)
Hors ligne
#7 Tue 29 July 2014 17:36
Re: aide mapbasic
Diou, juste pour info, je pense que didou72 donnait un exemple, mais fait attention à la syntaxe :
On écrira pas "Variable C" mais plutôt "Variable_C" avec le tiret bas ou "VariableC" sans espace, quel que soit le nom que tu choisis.
Il faut éviter les espaces si possible si tu codes.
Hors ligne
#8 Tue 29 July 2014 18:49
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: aide mapbasic
Petite question -> ce que tu cherches c'est développer un .mbx ou avoir le résultat escompté dans ta table (Si colonne A=Z et colonne B=Y alors colonne C=Y) ?
Car tu peux passer par la FMB plutôt que de développer un .mbx
A+
Joël
Hors ligne
#9 Wed 30 July 2014 08:07
- diou
- Participant assidu
- Date d'inscription: 27 Jan 2008
- Messages: 171
Re: aide mapbasic
Oui je n'ai pas préciser assez les chose je pensai juste passer par la FMB je n'ai hélas pas les compétences suffisantes pour coder un .mbx :'(
Du coup si voius avez une petite phrase adaptable a la FMB pour répondre à mon pblm je suis preneur!
Par avance merci!
Hors ligne
#10 Wed 30 July 2014 08:49
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: aide mapbasic
Quelle est la nature de Y et Z -> Ce sont des constantes en texte en numérique?
Si Y et Z sont des constantes en numérique:
Select * from TaTable where ChampA=Z and ChampB=Y into AModifier
update AModifier set ChampC=Y
Si elles sont en texte:
Select * from TaTable where ChampA like "Z" and ChampB like "Y" into AModifier
update AModifier set ChampC like "Y"
PS:Ne pas oublier de sélectionner tout le code avant validation dans la FMB sinon elle ne prendra en compte que la dernière ligne du code
A+
Joël
Dernière modification par Spacejo (Wed 30 July 2014 08:50)
Hors ligne
#11 Wed 30 July 2014 10:32
- diou
- Participant assidu
- Date d'inscription: 27 Jan 2008
- Messages: 171
Re: aide mapbasic
Merci bcp Joël !
Hors ligne
#12 Wed 30 July 2014 14:28
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: aide mapbasic
Diou, juste pour info, je pense que didou72 donnait un exemple, mais fait attention à la syntaxe :
On écrira pas "Variable C" mais plutôt "Variable_C" avec le tiret bas ou "VariableC" sans espace, quel que soit le nom que tu choisis.
Il faut éviter les espaces si possible si tu codes.
Oui exactement c'est une marche à suivre mais ne pas suivre la syntaxe.
Comme tu veux pas un mbx il faut alors suivre les explications de Joel
Merci Robin
Dernière modification par didou72 (Wed 30 July 2014 14:30)
Hors ligne