Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher une région ou un pays en fonction du code postal

6 réponses
Avatar
C15
Bonjour à tous et à toutes ,

J'ai un formulaire F villes0 dans lequel j'ai des contrôles
NomCodepostal, NomVille, Pays/Région.

Je voudrais que lorsque l'on saisit un code postal
Si les 2 premiers chiffres sont compris entre 00 et 99 (donc code
postal français),
s'affiche directement la région correspondante dans le contrôle pays/Région
sinon se déroule la liste de tous les pays pour pouvoir en choisir un.

J'ai une table T Codes_Pays où j'ai le nom de tous les pays du monde
(les champs sont Pays et Code_ISO)
et un autre table T Régions Départements où j'ai la correspondance
Département / Région (les champs sont Region et CodeDepartement - qui
corresponde aux deux 1ers chiffres du code postal)

J'ai essayé sans succès la procédure suivante ()à partir d'un conversion
de macro)

If (Eval("Left([Forms]![F Villes0]![NomCodepostal],2) Not Like
[00-99]")) Then
Forms![F Villes0]![Pays/Région] = DLookup(" [T Régions
Départements]![Region]", " [T Régions Départements]",
"Gauche([Formulaires]![F Villes0]![NomCodepostal];2)=[T Régions
Départements]![CodeDepartement]")

Forms![F Villes0]![Pays/Région] = "etranger"

End If

Dans un 1er temps j'essayais tout simplement d'afficher Etranger pour
les CP ne commençant pas dans la fourchette 00-99

C'est pas comme cela qu'il faut l'exprimer.

Qui peut me remettre sur la voie ?

Merci de votre aide

A+

C15

6 réponses

Avatar
Gilbert
Bonjour,

Je ne réponds pas directement à ta question, car je crois que de nombreux
pays utilisent un CP numérique.
Tu devrais peut-être modifier ton formulaire avec
une liste Pays
une liste CP
une liste région
...

--
Cordialement,

Gilbert


"C15" a écrit dans le message de
news:493bf2bf$0$28671$
Bonjour à tous et à toutes ,

J'ai un formulaire F villes0 dans lequel j'ai des contrôles
NomCodepostal, NomVille, Pays/Région.

Je voudrais que lorsque l'on saisit un code postal
Si les 2 premiers chiffres sont compris entre 00 et 99 (donc code
postal français),
s'affiche directement la région correspondante dans le contrôle


pays/Région
sinon se déroule la liste de tous les pays pour pouvoir en choisir un.

J'ai une table T Codes_Pays où j'ai le nom de tous les pays du monde
(les champs sont Pays et Code_ISO)
et un autre table T Régions Départements où j'ai la correspondance
Département / Région (les champs sont Region et CodeDepartement - qui
corresponde aux deux 1ers chiffres du code postal)

J'ai essayé sans succès la procédure suivante ()à partir d'un conversion
de macro)

If (Eval("Left([Forms]![F Villes0]![NomCodepostal],2) Not Like
[00-99]")) Then
Forms![F Villes0]![Pays/Région] = DLookup(" [T Régions
Départements]![Region]", " [T Régions Départements]",
"Gauche([Formulaires]![F Villes0]![NomCodepostal];2)=[T Régions
Départements]![CodeDepartement]")

Forms![F Villes0]![Pays/Région] = "etranger"

End If

Dans un 1er temps j'essayais tout simplement d'afficher Etranger pour
les CP ne commençant pas dans la fourchette 00-99

C'est pas comme cela qu'il faut l'exprimer.

Qui peut me remettre sur la voie ?

Merci de votre aide

A+

C15



Avatar
Daniel
Salut C15,

L'essentiel est de savoir ce que tu veux stocker, et ce que tu veux
afficher...
Si toutes tes villes sont liées à un département (pour l'étranger, un
département "...") et un pays, alors pourquoi ne pas proposer le choix de la
ville au lieu du CP ?
Dans ta liste des villes, les colonnes peuvent afficher une concaténation
Ville - Département - Pays pour conserver l'info à l'écran :

Bruxelles - ... - Belgique
Paris - Seine - France
etc...

A+ Daniel
Avatar
C15
Bonsoir,

Ce que je veux stocker c'est soit la région pour la France, soit le pays
pour l'étranger.

A mon avis on ne peut raisonnablement lier une ville à une région, c'est
plus facile de dire par exemple que si le Cp commence par 78, le région
est Ile de France, s'il commence par 44, c'est Pays de Loire.

Pour info il s'agit d'une base gérant une association.
L'intérêt est que grâce à cela je puisse faire un état des adhérents par
département.
Cela marche actuellement mais ce n'est pas encore assez automatisé.

Merci de ton aide

A+

C15

Daniel a écrit :
Salut C15,

L'essentiel est de savoir ce que tu veux stocker, et ce que tu veux
afficher...
Si toutes tes villes sont liées à un département (pour l'étranger, un
département "...") et un pays, alors pourquoi ne pas proposer le choix
de la ville au lieu du CP ?
Dans ta liste des villes, les colonnes peuvent afficher une
concaténation Ville - Département - Pays pour conserver l'info à l'écran :

Bruxelles - ... - Belgique
Paris - Seine - France
etc...

A+ Daniel


Avatar
Daniel
Salut,

1 - As-tu testé la requête décrite dans ton DLookUp (en mode graphique par
exemple)?
2 - Ne manque-t'il pas un ELSE dans ton code ?
3 - Sur quel événement ta procédure se produit-elle ?

A+ Daniel
Avatar
C15
Bonsoir,

Voilà ce que j'ai fait :

J'ai en fait rajouter un contrôle NomPays pour pouvoir afficher le pays.
Ce contrôle est une liste modifiable qui me permet de sélectionner un
pays etranger.

Si le code postal est compris entre 0 et 99999, dans le contrôle
NomRegion s'affiche la région et dans le contrôle NomPays, s'affiche France
sinon dans NomRegion s'affiche Etranger et je choisis le pays via ma
liste modifiable.

Ma procédure est alors la suivante :

>>>>>
Private Sub NomCodepostal_Exit(Cancel As Integer)

If Me.Codepostal >= 0 And Me.Codepostal <= 99999 Then
Me.NomRegion = DLookup("[T Régions Départements]![Region]",
"[T Régions Départements]", "left([NomCodepostal],2)=[T Régions
Départements]![CodeDepartement]")
Me.NomPays = "FRANCE"
Else
Me.NomRegion = "Etranger"

End If

End Sub
>>>>


Merci de ton aide

A+

C15


Daniel a écrit :
Salut,

1 - As-tu testé la requête décrite dans ton DLookUp (en mode graphique
par exemple)?
2 - Ne manque-t'il pas un ELSE dans ton code ?
3 - Sur quel événement ta procédure se produit-elle ?

A+ Daniel



Avatar
Daniel
Salut C15,
tant mieux si ça marche, je suis content pour toi...
Mais tu ne devrais pas avoir besoin de stocker toutes ces infos, ce n'est
pas idéalement compatible avec la notion de base de données... Notamment si
un utilisateur modifie juste le pays, ou juste la région... Tu peux te
retrouver ainsi avec des villes françaises classées à l'étranger ou
vice-versa... Mais peut-être es-tu le seul utilisateur de ta base ?
A+ Daniel