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 Fri 31 January 2014 20:57

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

Je cherche un moyen d'automatiser une mise à jour entre excel et Mapinfo  ( pour l'instant je vais pas aborder Mapbasic)

Je dispose d'un fichier Mapinfo avec des polygones ( une colonne ID , et d'autres colonnes...) c'est une table qui risque d'évoluer concernant  que la création d'autre polygone avec leur ID

Je vais donc produire d'autre polygone mais juste renseigner la colonne ID

J'ai un fichier excel qui contient des informations ( même structure que le fichier Mapinfo avec la colonne ID) cependant le fichier contient   des informations que souhaite rapatrier souvent dans la table Mapinfo


Comment mettre à jour le fichier Mapinfo sans passer par la mise à jour  colonne "mise à jour" SQL?

La création des polygones dans le fichier Mapinfo se fera toujours avant l'actualisation du fichier excel. ( je procède à la création du polygone puis j'informe l'autre personne pour mettre à jour le fichier excel puis après j'ai le feu vert pour mettre à jour le fichier Mapinfo grâce au fichier excel)

Est-possible de remplacer simplement le .DAT par le fichier excel et après de remplacer tout simplement le fichier excel quand il y a une mise à
jour.

Ou alors je passe par une mise à jour par la conception  MBX perso (Mise à jour automatique des colonnes) !!

Merci par avance !!

Dernière modification par didou72 (Fri 31 January 2014 20:58)

Hors ligne

 

#2 Mon 03 February 2014 11:42

nicoboud
Moderateur
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

Est-il nécessaire d'avoir en doublon les attributs dans le fichier Mapinfo ?
Car vous pouvez ouvrir votre table avec la géométrie et celle qui appelle le fichier excel, puis vous travaillez avec des jointures.

Sinon, si vous voulez absolument avoir les données attributaires en "dur" dans le fichier mapinfo, un wor tout simple, à écrire avec le bloc-note, peut suffire :

Code:

!Workspace
!Version  600
!Charset WindowsLatin1
Open Table "Mon_Chemin\Ma_Table_Geographique" As Ma_Table_Geographique Interactive
Open Table "Mon_Chemin\Ma_Table_Excel" As Ma_Table_Excel Interactive
Add Column "Ma_Table_Excel" (Champ_a_Mettre_a_jour) From Ma_Table_Geographique Set To Champ_a_Mettre_a_jour Where COL3 = COL9
Commit Table Ma_Table_Geographique Interactive

en personnalisant les noms : "Mon_Chemin\Ma_Table", "Mon_Chemin\Ma_Table_Excel", "Champ_a_Mettre_a_jour", "COL3" et "COL9" (COL3 est dans mon exemple la 3ième colonne de la table excel qui contient l'identifiant permettant de faire la jointure, COL9 est la 9ième colonne de la table géographique qui contient le même identifiant)

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#3 Sun 09 February 2014 18:21

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Merci beaucoup !

Je viens de réaliser l'opération cela marche très bien en plus c'est en chemin relatif.

Hors ligne

 

#4 Fri 21 February 2014 20:25

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

l'astuce marche mais je rencontre quand même un problème

Je dispose d'un fichier excel et son fichier .tab en mode feuille intégrale ou alors A1 M10000!
J'ai produit le fichier .wor avec vos recommandation pour faire une mise à jour automatique.
Quand j'écrase l'ancien fichier excel par le nouveau qui dispose de plus de ligne et que je relance la MAJ avec le fichier .wor alors là il ne procède pas à la nouvelle MAJ des nouvelles lignes (pourtant il y a quand même dans le.tab A1M10000).

Par contre quand je supprime le fichier . IND du fichier excel.tab alors j'ai une erreur comme quoi il ne trouve pas le fichier.IND mais il procède bien à la MAJ.

Avez-vous une solution pour éviter que le fichier .IND se produise quand j'ouvre le fichier excel.tab dans Mapinfo ou alors avez vous une autre solution ?

Je suis maintenant en Mapinfo 12

Merci pour votre retour

Dernière modification par didou72 (Fri 21 February 2014 20:36)

Hors ligne

 

#5 Fri 21 February 2014 21:09

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Apparemment c'est le fichier .wor pour mettre à jour le fichier  qui produit le fichier Excel_mapinfo.IND
Du coup il index est après il ne fait que la MAJ sur les lignes indexé sad

Comment éviter que le fichier IND se produise lors de la Mise à jour ?

merci pour votre retour

Dernière modification par didou72 (Fri 21 February 2014 21:10)

Hors ligne

 

#6 Mon 24 February 2014 11:49

nicoboud
Moderateur
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

A partir du  moment où on fait une jointure entre 2 tables, le champ utilisé pour la jointure est indexé. Cela est incontournable.

Par contre, vous pourriez définir votre table excel avec plus de lignes qu'elles n'en contient au départ (seul inconvénient, votre table comportera un certain nombre de lignes vides). Cela se fait au moment où vous ouvrez votre fichier excel pour la première fois dans Mapinfo : ne pas prendre la définition par défaut de la plage de cellules, mais il faut en spécifier une manuellement.
Pour un fichier excel déjà défini, il faut ouvrir directement le .xls et écraser la définition existante de la table.

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#7 Tue 25 February 2014 10:24

cec_92
Participant assidu
Date d'inscription: 28 Feb 2008
Messages: 193

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

Voir également du côté d'une liaison ODBC entre Excel et Mapinfo, si cela pourrait convenir à votre fonctionnement.

Fichier --> Ouvrir une connexion DBMS.

Cordialement.

Hors ligne

 

#8 Thu 27 February 2014 09:28

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

nicoboud a écrit:

Bonjour,

A partir du  moment où on fait une jointure entre 2 tables, le champ utilisé pour la jointure est indexé. Cela est incontournable.

Par contre, vous pourriez définir votre table excel avec plus de lignes qu'elles n'en contient au départ (seul inconvénient, votre table comportera un certain nombre de lignes vides). Cela se fait au moment où vous ouvrez votre fichier excel pour la première fois dans Mapinfo : ne pas prendre la définition par défaut de la plage de cellules, mais il faut en spécifier une manuellement.
Pour un fichier excel déjà défini, il faut ouvrir directement le .xls et écraser la définition existante de la table.

Nicolas.


bonjouŕ merci pour votre retour cependant j ai déjà définit manuellement la taille du tableau excel dans mapinfo avec beaucoup de ligne en trop.
j essaye de trouver une méthode simple de maj pour des gens qui ne sont pas pro de sig. je vais produire le fichier wor et produire le premier fichier tab du tableau excel.
pour moi écraser le fichier exel par un nouveau puis lancer le fichier wor pour activer la maj de la table c est assez simple. bon cependant apparemment il faut aussi supprimer le ficher ind avant mais cela provoque une petite alerte dommage c est pas clean.

je résume

1er maj

1 produire le fichier mapinfo contenant les polygones
2 produire par une personne un fichier excel contenant les informations sur certains polygones les autres ne sont pas rentrés
3 mettre le tableau excel dans le même dossier  que le tableau mapinfo
4 produire le fichier .tab du fichier excel ( définition de plus de 5ooo lignes pour voir grand )
6 produire le fichier wor avec les noms des fichiers pour faire la maj

pour les autres maj

écraser le fichier excel
supprimer le fichier ind
lancer le fichier wor pour la maj une alerte s affiche faire ok mais il exécute bien la mise a jour

est il possible de faire une verification  avec le fichier wor du style je compte le nombre de ligne remplit mais que dans certaines colonnes (3 colonnes) dans le fichier avec les polygone et je compte le nombre de ligne remplit dans le fichier 
excel.tab

j imagine quil faut faire une selection différent de 0 sur les colonnes et faire un count

mais j arrive pas l ecrire

merci pour votre retour

Hors ligne

 

#9 Thu 27 February 2014 11:33

nicoboud
Moderateur
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Mise à jour quotidienne Mapinfo avec fichier excel

est il possible de faire une verification  avec le fichier wor du style je compte le nombre de ligne remplit mais que dans certaines colonnes (3 colonnes) dans le fichier avec les polygone et je compte le nombre de ligne remplit dans le fichier
excel.tab
j imagine quil faut faire une selection différent de 0 sur les colonnes et faire un count


le code à utiliser :

Code:

Select count(*) from MaTable where Champ1<>"" group by ChampX into Selection

l'astuce étant de grouper sur un champ (ChampX dans l'exemple) qui a la même valeur pour tout les enregistrements.

Sinon, un point de vigilance dans votre procédure pour que la jointure se fasse correctement :
- s'assurer que la "table contenant les polygones" soit bien compactée avant de faire les maj.


Testez la solution de cec_92 qui me parait plus judicieuse. Ainsi, vous n'aurez pas besoin de reproduire un .tab à chaque maj.

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#10 Thu 27 February 2014 12:30

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

je vais regarder un tuto sur la connexion odbc (si vous avez un bon lien je suis preneur)
concernant ma procedure je vais rajouter une commande de compactage de tabe dans le wor de mise a jour.
le fichier .tab du fichier excel n est pour l instant pas reproduit c est juste le fichier  excel qui est ecrasé.
le .tab comporte une dimension de tabe tres importante est des formats tres grands pour les colonnes subissants la maj

autre solution

avant le traitement le fichier excel est transformė par vba pour etre compatible  à mapinfo je pense que je peux aussi produire par vba  son fichier .tab à chaque maj et donc ecraser les anciens fichiers.

1 supprimer le fichier ind
2 ecraser le fichier excel et son .tab (plus d alerte)
3 lancer le .wor (compactage , maj des colonnes, nombre d enregistrement pour chaque table )


pour le nombre d enregistrement je pense faire un message avec une variable

moi je cherche à compter les lignes qui sont non vide dans au moins une colonne.

ligne 1 si colonne 1 vide , colonne 2 non vide ,colonne 3 vide alors je compte 1
ligne 2 si colonne 1 non vide, colonne 2 non vide, colonne 3 non vide alors je compte 1 donc il y a 2 enregistrement
ligne 3 si colonne 1 vde, colonne 2 vide, colonne 3 vide alors je compte 0 donc il y a toujours 2 enregistrements

en gros


Code:

Select count(*) from MaTable where Champ1<>""  or champ2 <> "" or champ 3 <>"" into Selection

Dernière modification par didou72 (Thu 27 February 2014 19:59)

Hors ligne

 

#11 Sat 08 March 2014 10:19

didou72
Participant assidu
Date d'inscription: 21 Mar 2012
Messages: 192

Re: Mise à jour quotidienne Mapinfo avec fichier excel

Bonjour,

Un petit retour sur le problème !!

Il faut juste utiliser la commande "DROP index" qui est expliquée dans la notice de Mapbasic

A bientôt

Hors ligne

 

Pied de page des forums

Powered by FluxBB