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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 12 April 2012 17:05

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

Access/SQL - Mise à jour de champs simultanée sur plusieurs couches

Bonjour à tous,

J'ai un casse tête à résoudre... J'ai une série de couches SIG que j'ai regroupées dans une geodatabase que je peux ouvrir sous access.
Voilà mes données :
Des éléments dans un champ ID et un champ VALEUR_X dans une feuille Excel (une centaine d’éléments)
Un champ ID et VALEUR_X dans chaque couche SIG avec des valeurs ID différentes au sein des couches.

Je voudrais récupérer mes VALEUR_X de mon fichier Excel pour mettre à jour mes VALEUR_X dans toutes mes couches d'un coup, car les valeurs X sont susceptibles de changer complètement et j'ai besoin de faire la mise à jour instantanément sans aller dans chaque couche faire l'opération manuellement.

Ma solution pour l'instant est de créer une requête mise à jour par couche, mais j'aimerais les regrouper en un seule pour ne lancer la requête qu'une fois.

Ce qui s'en rapproche le plus sans faire la mise à jour est une requête de type UNION sur l'ensemble de mes couches, où j'affiche le champ VALEUR_X de mon tableau excel côte à côte avec la VALEUR_X existante dans mes couches, mais je ne sais pas comment aller plus loin...

Preneur de toute info pour pointer où je fais fausse route, ou vers où je pourrais me diriger ?

Hors ligne

 

#2 Thu 12 April 2012 17:35

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

Re: Access/SQL - Mise à jour de champs simultanée sur plusieurs couches

Re,

En attendant de voir comment faire via Access, j'ai rusé en prenant le problème à l'envers. J'ai ouvert toutes mes couches sous Arcgis, que j'ai jointé individuellement avec mon fichier Excel en basant ma jointure sur le champ ID.
Puis j'ai utilisé un outil nommé "Calcul de champ" que j'ai lancé "par lot".
Enfin, j'ai défini le calcul à faire pour chaque couche, à savoir mise à jour du champ VALEUR_X de chaque couche par le champ VALEUR_X du fichier Excel grâce à l'interface de l'outil.

Je récupère un script Python que je peux relancer à volonté, et qui a cette forme pour toutes mes couches :

arcpy.CalculateField_management("Couche1","Couche1.VALEUR_X","[FeuilleExcel$.VALEUR_X]","VB","#")

Hors ligne

 

Pied de page des forums

Powered by FluxBB