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é ?

#1 Thu 18 October 2012 10:23

Fct59
Juste Inscrit !
Date d'inscription: 18 Oct 2012
Messages: 4

MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Je débute (totalement) sur MapInfo et je souhaite savoir si il est possible de sélectionner sur la carte, un ensemble de commune automatiquement.

Je dispose d'une liste de Depcom (code INSEE) et je souhaiterai, en intégrant cette liste quelque part dans MI, que les communes soient sélectionnées sur la carte automatiquement.

J'ai tenté via l'outil Sélection > Sélection > Table : FR_Com99> Critères : Depcom = 16203
mais cela ne fonctionne pas : "Erreur de Type dans l'expression, Erreur de syntaxe, corrigez et recommencez.

Pouvez-vous m'éclairer à ce sujet ? Et surtout comment faire pour sélectionner une liste de Depcom (environ 200) via cet outil, en 1 seule requête.

Merci beaucoup par avance pour vos retours

Hors ligne

 

#2 Thu 18 October 2012 11:48

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

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour et bienvenue,

Une piste rapide en attendant le détail : faire une jointure entre votre table de codes insee et votre table communes.

Hors ligne

 

#3 Thu 18 October 2012 16:01

Fct59
Juste Inscrit !
Date d'inscription: 18 Oct 2012
Messages: 4

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Étant débutant, je ne vois pas ce que vous entendez par là malheureusement.

Lorsque je sélectionne manuellement des communes et que je fais "F2", il m'affiche bien le nom, le depcom, la population etc de la commune. L'information est donc déjà présente dans chaque objet.

Je me suis donc dit que la sélection automatique via l'outil "Sélection" devrait donc être simple

Hors ligne

 

#4 Fri 19 October 2012 08:38

cedricmaury
Juste Inscrit !
Lieu: CHANTERAINE-Morlaincourt
Date d'inscription: 13 Feb 2010
Messages: 5

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Le fait que vous ayez une erreur de type provient probablement du type de votre champ Depcom. Celui-ci doit être en caractères. Vous pouvez vérifier dans Table -> Gestion des tables -> Modifier structure. Donc dans votre requête , mettez votre numéro entre guillemets.

Pour ce qui est de sélectionner plusieurs communes, cela dépend. Si par exemple, toutes tes communes commencent par 16, vu peux utiliser dans tes critères Depcom llike "16%". Le sigle % remplace un ensemble de caractère dans MapInfo. Si ce n'est pas ça, essayez de trouver un champ où les entrée sont ressemblantes pour les communes que vous voulez sélectionner. Si vous rencontrez des problèmes, précisez votre recherche.

Cordialement

Hors ligne

 

#5 Mon 22 October 2012 09:55

Fct59
Juste Inscrit !
Date d'inscription: 18 Oct 2012
Messages: 4

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Pardon pour ma réponse tardive. Merci pour vos réponses.
En effet, via "Table", j'ai indiqué Caractère sur le Depcom.

J’arrive donc désormais, via l'outil "Sélectionner", à sélectionner 1 commune, en utilisant les guillemets pour le Depcom (que je ne mettais pas avant).

Toutefois, je n'arrive pas à sélectionner plusieurs communes via la même requête ! Les Depcom ne se suivent pas tous et ils ne sont pas tous dans le département 16.

Que dois-je indiquer dans l'outil Sélection ?

Lorsque je mets : DepCom = "16010""16021""16025" ou DepCom = "16010,16021,16025" ou DepCom = "16010;16021;16025" le message est "Aucun enregistrement n'est sélectionné" (Alors qu'à priori la syntaxe est correcte).

Merci encore par avance pour votre aide (à un vrai vrai débutant...)

Hors ligne

 

#6 Mon 22 October 2012 10:35

cedricmaury
Juste Inscrit !
Lieu: CHANTERAINE-Morlaincourt
Date d'inscription: 13 Feb 2010
Messages: 5

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Il faut repéciser à chaque fois sur quel champ vous travaillez et utiliser l'opérateur logique "or" (qui veut dire ou en français), ce qui donne dans l'exemple que vous proposez : Depcom = "16010" or Depcom = "16021" or Depcom = "16025". Peut-être que quelqu'un d'autre connait une méthode plus simple car si vous devez sélectionner beaucoup de communes, on arrive vite à une expression très longue. En plus, je crois (sans en être totalement sûr) que le nombre de critères est limité...

Cordialement,

Hors ligne

 

#7 Mon 22 October 2012 11:14

Fct59
Juste Inscrit !
Date d'inscription: 18 Oct 2012
Messages: 4

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Merci beaucoup !

J'arrive désormais via votre requête (Depcom = "16010" or Depcom = "16021" ) à faire une sélection multiple (j'édite la requête automatiquement via Excel, c'est plus rapide et automatique)

Par contre, en effet, l'outil Sélection est limité à 12 lignes. Via l'outil Sélection SQL, j'arrive à faire 45 lignes en 1 demande.

Existe-t-il donc un outil (autre ? Importer ?) pour sélectionner un nombre illimité de communes via Depcom ?

Hors ligne

 

#8 Mon 22 October 2012 11:31

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

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Salut,

Pour réduire un peu tu peux passer par un "in" :

Code:

Select * from FR_Com99 where Depcom in ("16010", "16021", "etc...") into selection

Cette requête est à placer dans la FMB --> Options --> Voir Fenêtre MapBasic.
Si tu utilises l'outil sélection --> Dans Critère --> Depcom in ("16010", "16021", "etc...")
A+
Joël

Dernière modification par Spacejo (Mon 22 October 2012 11:45)

Hors ligne

 

#9 Mon 22 October 2012 13:29

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

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Désolé pour la réponse rapide de l'autre jour mais j'étais assez occupé, et je n'ai pas eu le temps pour une réponse détaillée. Le principe de la jointure est de rapatrier des informations d'une table vers une autre. Sur Access, ça se traduit grâce aux relations entre tables.

Voilà des détails sur la procédure :

Le principe

A partir d'un champ d'identifiant unique commun vous pourrez apparier vos deux tables par une jointure attributaire et ainsi sélectionner uniquement une liste de valeurs.

Exemple

Je simplifie un peu pour la démo :
Table 1 (données sources, ici votre liste de communes Depcom)
Commune1, CodeInsee, ValeurA, ValeurB
Commune2, CodeInsee, ValeurA, ValeurB
Commune3, CodeInsee, ValeurA, ValeurB

Table 2 (données cible, ici votre fichier TAB avec toutes les communes de France, par exemple)
Commune1,Insee_com, EntitéGeometrique
Commune2,Insee_com, EntitéGeometrique
Commune3,Insee_com, EntitéGeometrique
...
Commune36680,Insee_com, EntitéGeometrique

Grâce  au champ CodeInsee de depcom et et Insee_com de communes qui comportent les mêmes valeurs pour la même commune vous pourrez rapatrier les valeurs A,  B, ou autre valeur contenue dans la Table 1 vers la Table 2.

La requête SQL

Via la FMB (Fenêtre Mabasic dans le menu option/afficher la fenêtre MB) vous pouvez passer des requêtes SQL complexes qui font cette jointure.

Voilà le genre de requête pour opérer la jointure à taper dans le fenêtre MB. Si vous n'y arrivez pas, je vous expliquerais via la commande Requête SQL dans la fenêtre sélection. N'oubliez pas de remplacer les noms de vos tables :

Code:

Select * from Depcom, COMMUNE where Depcom.CodeInsee = COMMUNE.Insee_com into Selection

Cette requête créé une table provisoire où tous vos champs sont réunis :

Code:

Communes.insee_Com, EntitéGeometrique, Commune1, Depcom.CodeInsee, ValeurA, ValeurB
Communes.insee_Com, EntitéGeometrique, Commune2, Depcom.CodeInsee, ValeurA, ValeurB
...

Tous les champs sont réunis dans cette requête et tous les enregistrements, A CONDITION que les codes insee correspondent. C'est pourquoi on évite de faire des jointures sur les champs des noms de commune qui peuvent être orthographiés différemment selon les sources et qui ferait échouer la requête.

Il est possible de changer la requête pour nommer la table provisoire différemment :

Code:

Select * from Depcom, COMMUNE where Depcom.CodeInsee = COMMUNE.Insee_com into LeNomQueJeVeux

Attention, ce n'est pas une table physique encore c'est juste une sélection ! Dernière étape, il est possible d'afficher ces communes dans la fenêtre carte en l'ajoutant comme une table "normale". Notez que si vous rajoutez des valeurs à votre table depcom, la requête rajoutera automatiquement les nouvelles communes via la sélection SQL.

N'hésitez pas à poster si besoin de détails.

Enfin, dernier conseil, même si elle semble plus longue à expliquer, je pense que cette méthode est plus "saine" car en principe exhaustive, pas d'erreur de sélection possible sauf si vos champs INSEE ne sont pas identiques. Et vous gagnerez du temps si vous la comprenez !

Hors ligne

 

#10 Tue 23 October 2012 11:00

G.BAZIN
Participant occasionnel
Lieu: Marseille
Date d'inscription: 5 Sep 2005
Messages: 43

Re: MapInfo Pro 8.0 / Selection des communes via Depcom

Bonjour,

Il existe une possibilité avec any

Ainsi votre sélection aura cette écriture -  depcom = any ("16021","16010", "16000","16025") pas plus certainement que 255 caractères.

Cordialement


****MODERATION*****
cette réponse était en attente de traitement par la modération, traité ce matin seulement (désolé), mais écrit le 22/10/12 à 10h45 (donc à replacer mentalement dans le fil de la discussion, entre les post #6 et #7).


G.BAZIN
Tel : 04 88 91 92 74
email : g.bazin@texte-a-enlever.agam.org
email : gbazin05@texte-a-enlever.free.fr

Hors ligne

 

Pied de page des forums

Powered by FluxBB