#1 Tue 04 September 2007 16:07
[Arcview 8.x+] Requête + mise a jour
Hello,
Je cherche à faire une opération sous arcgis que je sais faire sous Mapinfo et je souhaitais savoir si c'était techniquement possible avec ma version, ou sur une version plus récente.
Voilà le code en SQL :
Select * from Matable Where ( indiceA=1 AND indiceB=1 ) Into MaSelection
Update MaSelection Set indiceFinal = 1
Je sais bien sûr le faire à la main, mais j'aimerais en lancer tout un paquet d'affilée.
La méthode "Sélection avec la boîte de dialogue, puis mise à jour dans la colonne puis Sélection avec la boîte de dialogue, puis mise à jour" est exclue car trop longue. Pour l'instant je jongle un peu mais j'aime bien centraliser les traitements dans un seul soft.
Merci de toute piste, je suis aussi intéressé par savoir si c'est possible dans les version suivantes.
Robin.
Hors ligne
#2 Tue 04 September 2007 17:23
- paulcarrot
- Participant occasionnel
- Lieu: saint-etienne
- Date d'inscription: 14 Nov 2005
- Messages: 42
Re: [Arcview 8.x+] Requête + mise a jour
Bonjour,
Avez vous essayé de faire une requête VBA?Du genre :
dim mavariable as integer
if [indiceA] = 1 and [indiceB]=1 then
mavariable = 1
end if
indicefinal =
mavariable
Essayez de voir si ça peut coller à vos attentes.
Cordialement PCA
Hors ligne
#4 Tue 04 September 2007 17:53
Re: [Arcview 8.x+] Requête + mise a jour
Re,
J'ai testé, c'est tout à fait ce que je voulais.
Procédure pour ceux qui se demandent où ça se passe :
- Clic droit sur l'entête de la colonne dans la table d'attributs
- Calculer les valeurs...
- Clic sur le bouton "avancé"
- Coller le code dans la boîte de dialogue.
Merci beaucoup.
Robin
Ps : le test avec plusieurs conditions est tout à fait faisable, c'est ça que je voulais faire
Dim mavariable as integer
if [IndiceA] = 1 and [IndiceB]=1 then
mavariable=1
end if
if [IndiceA] = 1 and [IndiceB]=2 then
mavariable=2
end if
if [IndiceA] = 3 and [IndiceB]=3 then
mavariable=3
end if
indicefinal=mavariable
Hors ligne
#5 Tue 04 September 2007 18:58
Re: [Arcview 8.x+] Requête + mise a jour
Rebonsoir,
J'ai testé une autre formule avec "Select Case", histoire de voir, et elle me plaît pas mal
(plus simple pour explorer toutes les possibilités) :
Dim mavariable as integer
Select Case [IndiceA]
Case 1
Select Case [IndiceB]
Case 1
mavariable = 1
Case 2
mavariable = 2
End select
Case 2
Select Case [IndiceB]
Case 1
mavariable = 1
Case 2
mavariable = 2
End select
End Select
Hors ligne