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 Wed 10 June 2009 10:09

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2094
Site web

calcul dans access

Bonjour

j'ai toujours du mal à faire ces calculs dans access, c'est pour moi plus facile dans arcview mais là j'ai pas le choix
alors si quelqu'un peut m'aider je cherche à rajouter un zero en début d'identifiant parcellaire quand le code section est à une seule lettre plutôt qu'à deux

pour créer un champ calculé
je pensais faire : si le nombre de caractère est inférieur à 6, rajouter à droite un zero

si quelqu'un connait l'access couramment peut-il m'aider ?

merci d'avance

Dernière modification par AlineC (Mon 27 November 2017 15:21)

Hors ligne

 

#2 Wed 10 June 2009 11:10

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: calcul dans access

Bonjour,

La question est de savoir comment écrire le champ.
Mais à vu de nez le zéro je le mettrait à gauche.

Et à moins d'utiliser une vieille version d'arcview, l'écriture devrait être similaire. (vu qu'il travaille tout les 2 avec du vba)

cordialement

Hors ligne

 

#3 Wed 10 June 2009 11:30

Séraphin
Participant occasionnel
Date d'inscription: 17 Apr 2008
Messages: 19

Re: calcul dans access

Une des méthode que l'on utilise la où je bosse et queje trouve pas trop mal penser,
C'est de rajouter un nombre de zéro correspondant à la largeur max que peut avoir un numéro de parcelle et de faire un right(numéro,nb_max)
Ca évite de passer par un nombre inimaginable de test.

Hors ligne

 

#4 Wed 10 June 2009 11:46

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: calcul dans access

Avec Access, il y a des masques pour ce genre de choses (champ type numéro de téléphone par exemple), ou j'utilise une version récente et c'est le genre d'option qui a été ajouté récemment ?


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#5 Wed 10 June 2009 18:39

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: calcul dans access

Bonjour,

zero en début d'identifiant parcellaire quand le code section est à une seule lettre


Bonjour, en premier lieu il est préférable de traiter un identifiant parcellaire selon plusieurs champs, et même plusieurs tables.
Un identifiant parcellaire c'est 4 tables.

Code commune + Code commune absorbée + Section + Numéro parcelle. (je vous conseil de faire une recherche "données Majic2", et je vous fait grâce du code direction)

Ensuite avec cette configuration et compte tenu du fait que la longueur de section est deux caractères, donc en source extrait majic2 c'est " A" et pas "0A" comme il convient de le coder si l'on veut respecter les standards DGFiP (nom fichier plan cadastraux et MetaDATA pour les objets Parcelle) .

Pour les fonctions VB ou Access avec un champ "section" de longueur 2 caractères:

Code:

SELECT Table1.idtable, Table1.section, IIf(Len([section])=1,"0" & [section],[section]) AS Sectionmodif
FROM Table1;

Donne un champ calculé "Sectionmodif", qui ajoute le caractère "0" à chaque fois que la longueur du texte du champ vaut 1.

Vous pouvez aussi utiliser le générateur d'expressions avec la fonction intégrée vraifaux ()

Pour traiter un champs "collé" comprenant Section et Numplan et dégrouper en ajoutant un zéro si simple lettre:
Longueur du champs 5 ou 6:

Code:

SELECT Table1.idtable, Table1.sectionnumplan, IIf(Len([sectionnumplan])=5,"0" & Mid$([sectionnumplan],1,1),Mid$([sectionnumplan],1,2)) AS Section, IIf(Len([sectionnumplan])=5,Mid$([sectionnumplan],2,4),Mid$([sectionnumplan],3,4)) AS Numplan
FROM Table1;

Un champ calculé "section" avec deux caractères toujours remplis
Un champ calculé "numplan".

A+


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#6 Thu 11 June 2009 09:39

Toñito
Participant assidu
Date d'inscription: 26 Oct 2005
Messages: 168
Site web

Re: calcul dans access

la formule est :

Code:

UPDATE matable SET matable.maclef = "0" & [maclef]
WHERE ((Len([maclef])=5));

Dernière modification par Toñito (Thu 11 June 2009 09:39)

Hors ligne

 

#7 Mon 15 June 2009 15:47

Fauvegui
Participant occasionnel
Lieu: Le Petit Quevilly
Date d'inscription: 13 Mar 2008
Messages: 13
Site web

Re: calcul dans access

Christophe V. a écrit:

Ensuite avec cette configuration et compte tenu du fait que la longueur de section est deux caractères, donc en source extrait majic2 c'est " A" et pas "0A" comme il convient de le coder si l'on veut respecter les standards DGFiP (nom fichier plan cadastraux et MetaDATA pour les objets Parcelle) .


A noter au passage que les standards des impôts et ceux de l'IGN (BD Parcellaire) ne sont pas les mêmes !

Hors ligne

 

#8 Mon 15 June 2009 18:11

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: calcul dans access

Bonjour,

@Fauvegui : Remarque tout à fait pertinente, quand on jongle entre les BDIGN et les données DGFiP c'est une problématique récurrente.

@ Toñito : Le code que vous proposez est nettement plus compact que le mien ! Les mauvais réflexes des fonctions intégrées dans les assistants! Ceci dit ma méthode a l'avantage de créer un nouveau champs en préservant la valeur des autres le composant, en cas d'erreur de formule un UPDATE est plus "tranchant".

A+


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB