[Résolu] Liste deroulante de villes suivant un code postal

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
nanardzozo
Fraîchement OOthentifié
Messages : 2
Inscription : 01 août 2023 16:16

[Résolu] Liste deroulante de villes suivant un code postal

Message par nanardzozo »

Bonjour à toutes et à tous

Je suis entrain de créer une base de données qui doit me fournir, à partir d'un code postal saisi dans un champ d'un formulaire, la liste de toutes les villes correspondantes à de code postal pour que je puisse en saisir une.
Je suis débutant sur openoffice et je suis un peu ou même beaucoup perdu !!
Je sais faire avec Access mais pas avec openoffice

Merci de vos réponses
windows 10 apache open office 4.1.14
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Open Office Base de données liste deroulante

Message par Bidouille »

Bonjour et bienvenue,

Titre modifié pour plus de clarté
Toutes les questions dans cette section traitent de "OpenOffice Base de données"
Veillez à ne pas employer de terme implicite à l'avenir.

Un titre clair et explicite n'est pas pour vous mais pour tous ceux effectuant des recherches dans ce forum.

Merci de faire un effort lors de vos prochaines questions.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Liste deroulante de villes suivant un code postal

Message par jeanmimi »

Bonjour,
nanardzozo a écrit : 01 août 2023 16:24 Je suis en train de créer une base de données
Peux-tu joindre ta première ébauche de la base ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
nanardzozo
Fraîchement OOthentifié
Messages : 2
Inscription : 01 août 2023 16:16

Re: Liste deroulante de villes suivant un code postal

Message par nanardzozo »

Bonjour
Des précisions :

Lors d'une manifestation, je veux connaitre d'où viennent les visiteurs. Pour cela , je saisi le code postal et si ce code commencent par 11 je veux pouvoir enregistrer dans ma tabme enregistrement :
le code postal
le numéro du département
le nom du département
le nom de la commune
et le nom du pays audois dans le quel se trouve la commune

PS 2 communes peuvent avoir le même code postal et appartenir à des pays audois différents
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
windows 10 apache open office 4.1.14
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Liste deroulante de villes suivant un code postal

Message par Dude »

Salut,

Depuis 15 ans qu'existe ce forum, cette question passe régulièrement :
search.php?st=0&sk=t&sd=a&sr=topics&key ... id%5B%5D=9

Le tutoriel sur les listes déroulantes montre ces aspects également : viewtopic.php?f=29&t=14662
Une solution macro clé-en-main a été fournie sous la forme d'un suprême de code : viewtopic.php?t=42247
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Liste deroulante de villes suivant un code postal

Message par jeanmimi »

Peux-tu tester le formulaire simplifié de cette Base pour voir si son utilisation convient dans les situations pratiques ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
arverne73
Membre OOrganisé
Membre OOrganisé
Messages : 71
Inscription : 30 mars 2012 16:13
Localisation : Savoie, France

Re: Liste deroulante de villes suivant un code postal

Message par arverne73 »

Bonjour,
@nanardzozo :
Sous LibreOffice, je n'ai pas accès aux macros de votre fichier : plantage systématique de l'application, mais peu importe.
Remarque de structure : dans la table enregistrement, vous ne devriez pas avoir à saisir département et pays puisque ceci est invariable : le département 11 est toujours le même et il est en France. Ces informations devraient être éventuellement ajoutées dans la table 'les5pays' et récupérées au besoin.
Et donc, il s'agit de saisir un code postal dans un contrôle et de filtrer le contenu de la liste déroulante à côté pour qu'elle contienne les communes correspondantes à ce CP (à partir des informations dans la table 'les5pays') ? Dans Access©, à ma connaissance, dans les requêtes, on peut créer un critère issu d'un contrôle du formulaire (ici le code postal). Avec OpenOffice, on ne peut pas ! Donc, il faut faire plus compliqué mais on trouve de nombreux exemples.
En fait, on est obligé de fabriquer la requête SQL, source de la liste déroulante, avec une macro qui va récupérer le code postal comme critère, puis l'"injecter" comme source de la liste déroulante. Sur l'évènement 'Changement' ou 'Perte de focus' du contrôle où l'on saisit le code postal, on va donc déclencher cette macro qui va actualiser la liste déroulante.
Ci-dessous un exemple de code :

Code : Tout sélectionner

Sub FiltreCP (evt as Object) 
On Error Goto sortie
Dim  vDoc as Object, vForm1 AS OBJECT, ctList as object, vueCtList as Object, vCritere as Object
Dim StrSql as string, StCP as string

vDoc = thiscomponent
vForm1 = evt.Source.Model.Parent 'permet d'être utilisé quelque soit le formulaire d'appel
ctList = vForm1.getByName("ListeVille") 'la liste déroulante
vCritere = vForm1.getByName("CPSaisi") 'le contrôle code postal
StCP = vCritere.Text 'la valeur du contrôle CP

StrSql = "SELECT ""NomCommune"", ""cp"" FROM ""les5pays"" WHERE ""cp"" = " & StCP  'la requête SQL avec le critère du CP grâce à la variable StCP

ctList.ListSourceType=com.sun.star.form.ListSourceType.SQL
ctList.ListSource=Array(StrSQL) 'on attribut à la source de la liste notre requête SQL
ctList.Refresh 'on rafraîchit 
vueCtList = vDoc.CurrentController.getControl(ctList)
vueCtList.selectItemPos(vueCtList.SelectedItemPos, False) 'remise à zéro de la liste déroulante

Exit Sub	 
sortie:
MsgBox(Error, 16)

End Sub
Et votre fichier avec cette seule partie de code.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.4.2 sur Ubuntu 23.10 GNOME (version officielle). Base en frontale d'une base MySQL ; échec liaison directe => liaison JDBC.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Liste deroulante de villes suivant un code postal

Message par Bidouille »

arverne73 a écrit : 08 août 2023 17:42 Ci-dessous un exemple de code
Vous êtes invité à ne pas poster ici de solution par macro (cf. bandeau rouge en haut de la page).
Dernière visite : 03 août 2023 15:55
Merci d'attendre le retour de l'auteur avant de continuer à poster d'autres réponses.
Avatar de l’utilisateur
arverne73
Membre OOrganisé
Membre OOrganisé
Messages : 71
Inscription : 30 mars 2012 16:13
Localisation : Savoie, France

Re: Liste deroulante de villes suivant un code postal

Message par arverne73 »

Bonjour !
Entendu. Mais la question est posée dans cette rubrique et, à mon humble connaissance, la réponse passe par du code.
Quelle est donc la solution pour apporter l'aide attendue par le correspondant ?
LibreOffice 7.6.4.2 sur Ubuntu 23.10 GNOME (version officielle). Base en frontale d'une base MySQL ; échec liaison directe => liaison JDBC.
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: Liste deroulante de villes suivant un code postal

Message par nounours2 »

@ arverne73

Bonjour, et merci pour avoir eu l'idée.

Tout en essayant de me conformer au dictat de ce forum, c-à-d éviter le code si possible, quitte à me faire enfermer par un geôlier, j'aimerais vous inviter à consulter cette méthode (avec liste déroulante et sélection) viewtopic.php?t=67558.

@ bidouille

Je vous demande humblement si vous pouviez ne pas condamner a priori un paradigme proposé par analogie...

Bien à vous

nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Liste deroulante de villes suivant un code postal

Message par Bidouille »

Dernière visite : 03 août 2023 15:55
L'auteur n'ayant plus réapparu depuis plus d'un mois, je clôture.

Si jamais il revient un jour, il pourra le rouvrir :
ftopic52748-reouverture-de-question-fermee.html