[Résolu] [Base] Projet de suivi d'une base immobilière

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

[Résolu] [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Bonjour à toute la communauté

Je me lance dans un projet de création d'une base de données immobilière actuellement gérée par via un fichier excel de 1400 lignes environ et d'une cinquantaine de colonnes environ. L'utilisation d'un SGBDR me semble tout particulièrement adaptée à cet emploi. J'ai fait l'étude fonctionnelle, définit mes tables et les relations entre elles. Il existe une table principale majeure ("T_Projet") et des tables mineures statiques mais qui évitent la saisie de données redondantes.

J'ai déjà mené l’étude fonctionnelle, définit les tables et les relations entre elles. Pour ne pas faire une usine à gaz, la base sera composée dans une première phase d'un menu général qui appellera 3 formulaires : un formulaire création (pour 70 projets annuels environ), un formulaire consultation (de loin le plus utilisé) et un formulaire modification (des projets en cours) pour la reprise de données existantes. Dans une deuxième phase, viendront se rajouter la création d'états, l'insertion de données financières ..... mais ça c'est pour plus tard.

J'ai déjà récupéré quelques macros sur le forum pour la gestion des ouvertures et fermetures de formulaire, le lancement automatique du menu général dès le lancement de la base, la fermeture de la base .... Merci à tous les contributeurs :bravo: pour le travail accompli.

En mode de conception du formulaire création, je suis confronté à une première difficulté : je souhaite, lors de la création d'un nouveau projet, qu'une fois le département sélectionné (Table "T_Département", champ "Département"), les champs "Région" ("T_Région") et "Code_dpt" (T_Département) soit mis à jour automatiquement dans les champs correspondants de la table T_Projet à partir de laquelle le formulaire est créé. J'ai regardé du coté des sujets traitant des "liens en cascade" et des "champs liés" sans résultat probant selon mon experience naissante. Je me demande si une requête SQL ne suffirait pas comme je l'ai fait pour le champ "Région". A moins qu'il ne faille passer par une macro :roll:

Merci de votre collaboration.

Je vous joins mon ébauche de projet et une copie d'écran de mes boutons tels qu'ils apparaissent sur mon PC (les fichiers images des boutons sont liés et non incorporés :oops: )
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par TempsX le 30 janv. 2022 23:17, modifié 1 fois.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
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: [Base] Projet de suivi d'une base immobilière

Message par jeanmimi »

Bonjour,
TempsX a écrit :Je me demande si une requête SQL ne suffirait pas comme je l'ai fait pour le champ "Région".
Dans l'exemple joint, je te propose un formulaire (MainForm avec SubForm) qui choisit la Région dans une Zone de liste, et affiche la sélection des départements dans une Table (il faut pour cela indiquer l'id des Régions dans la Table des départements, ce que j'ai fait complétement au hasard pour les 4 premières Régions)). Le clic sur le Bouton permet cet affichage.
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
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Merci JeanMimi pour t'être penché sur mon problème. Je pensais que le choix d'uin département pouvait automatiquement afficher son code de département et sa région de rattachement puisque j'avais déjà rempli toutes les tables. Je regarde donc ton fichier avec attention
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
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: [Base] Projet de suivi d'une base immobilière

Message par jeanmimi »

TempsX a écrit :j'avais déjà rempli toutes les tables
Dans la base que tu as mise en ligne, il n'y a pas de code dans la Table T_Département pour faire le lien de chacun d'entre eux avec sa Région, à part ceux que j'ai entrés (et qui sont fictifs bien sûr).
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
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

J'avais envoyé une copie de ma base dans laquelle la table n'était effectivement pas remplie. C'est dorénavant fait avec les bonnes relations. Cette table étant "en dur" et les régions/départements en devant pas bouger, elle me servira à faire des filtres pour des états. Je continue à prospecter le forum à la recherche de solutions pour faciliter la construction de ma base.

Dans le formulaire création, je souhaiterais que les champs de type case à cocher "logements" et "lst" n'apparaissent que si le champ "opération mixte" est coché. Ma réflexion à ce stade et ma compréhension de Base me laisse à penser que je devrai utiliser la propriété Visible des deux contrôles qui serait modifiée par l'événement "statut de l'élément modifié" de la case à cocher "opération mixte".

Si c'est possible, je souhaite aussi faire la même chose avec le champ "collectivité si BEA" qui deviendrait visible que dans les seuls cas ou le choix BEA 1, BEA2 et BEA 2017 du champ "cadre juridique" est sélectionné. Dans ce cas, je pense qu'il faut passer par un "SelectedItem" et un "select case" dans une macro qui serait affectée à l'événement "modifié" du champ "cadre juridique".

Est-ce la bonne analyse ou me trompe-je complétement :fou: ?

Votre connaissance m'est précieuse

Je joins mon fichier.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Projet de suivi d'une base immobilière

Message par Piaf »

Bonsoir
Un petit exemple sur Statut de l'élément modifié de la case à cocher Operation_mixte

Code : Tout sélectionner

Sub caseaCocher()
Dim oForm as Object,Case0 as Object, case1 as Object, case2 as Object
	oForm = thisComponent.DrawPage.Forms.getByName("Formulaire")
	Case0 = oForm.getByname("Operation_mixte")
	Case1 = oForm.getByName("Logerments")
	Case2 = oForm.getByName("LST")
	If Case0.State = 1 Then
		Case1.EnableVisible = True
		Case2.EnableVisible = True
	Else
		Case1.EnableVisible = False
		Case2.EnableVisible = False			
	End If	
End Sub
Attention au nom de la case à cocher Logerments
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Merci beaucoup Piaf. Mon analyse etait sur la bonne voie. En décortiquant le code jai compris que tu récupérais le nom des controles qui doivent être utilisés apres avoir déclaré ces variables comme des objets. Pour le select case la syntaxe est facile à comprendre. Ensuite pour ce qui est des propriétés le guide ooBasic est indispensable. Je teste cela dès ce soir.

Pour le logement je vais aussi faire la modification :super:
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Projet de suivi d'une base immobilière

Message par Piaf »

Re
Attention, tu dois aussi affecter la macro à l'événement Après le changement d'enregistrement du formulaire
C'est la raison pour laquelle on ne fait pas appel à l'événement.
Et je pars du principe où les deux cases à cocher à faire apparaître ou à masquer ont la propriété Visible définie à Non
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Piaf a écrit : Attention, tu dois aussi affecter la macro à l'événement Après le changement d'enregistrement du formulaire
Très bien vu Piaf, car j'aurai mis du temps à trouver pourquoi un nouvel enregistrement affichait les cases à cocher de façon visible.
Je continue avec le formulaire modification pour lequel j'aurai sans doute besoin de conseils. C'est la raison pour laquelle je laisse le fil ouvert.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Projet de suivi d'une base immobilière

Message par Piaf »

Bonsoir
TempsX a écrit :C’est la raison pour laquelle je laisse le fil ouvert.
Comme le fil est dans la section Projets, tu peux le laisser ouvert tant que tu as des questions.
Une ou deux réflexions en passant…
Pourquoi dans ta table T_Departement tu crées un champ IDDepartement alors que le code département peut servir de clef primaire ?
Ce qui permettrait de n’avoir qu’un seul champ à stocker dans la table T_Projet.
Pourquoi vouloir créer des formulaires différents pour la création, la modification ou la consultation des mêmes données ?
Je pense que tu peux utiliser le même formulaire avec des droits différents à chaque fois, quitte à afficher ou masquer certains contrôles.
TempsX a écrit :qu'une fois le département sélectionné, le champ "Région"…soit mis à jour automatiquement dans le champ correspondant de la table T_Projet
C’est faisable :D
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Piaf a écrit :Pourquoi dans ta table T_Departement tu crées un champ IDDepartement alors que le code département peut servir de clef primaire ?
Ce qui permettrait de n’avoir qu’un seul champ à stocker dans la table T_Projet.
Dans ma version 2.01, j'ai supprimé les champs Code_Departement et Region dans la table T_Projet puisque les tables sont liées. J'avais donc une information redondante. Je peux effectivement encore simplifier la table T_Departement en gagnant un champ puisque les départements sont uniques.
Piaf a écrit :Pourquoi vouloir créer des formulaires différents pour la création, la modification ou la consultation des mêmes données ?
Je pense que tu peux utiliser le même formulaire avec des droits différents à chaque fois, quitte à afficher ou masquer certains contrôles.
Le projet a un peu évolué. Le formulaire consultation sera en fait utilisé uniquement pour générer des fiches immobilières sous forme de rapports. En revanche le formulaire modification fera apparaître des champs différents de celui de la création mais surtout il sera utilisé par un autre service que le mien. Je voulais donc un "semblant" de cloisonnement. En tout cas je suis toujours preneur de remarques :wink:
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Je reviens vers vous après avoir travaillé sur mon projet un peu pendant les vacances. La version a été améliorée. Comme le suggérait Jeanmimi, il n'y a que deux formulaires, le premier Frm_création étant réservé à la saisie initiale d'un nouveau projet, le second Frm_Modification servant à la consultation et à la saisie de données complémentaires d'u projet existant. Un troisième formulaire Frm_Rapports proposera des états pré-définis en fonction de la demande.

Pour le formulaire Frm_Création, j'ai ajouté un sous-formulaire sachant qu'un projet peut toucher plusieurs unités. Je suis passé par une table intermédiaire et cela fonctionne sans problème. Afin de consolider les saisies, je souhaite pouvoir récupérer la valeur du champ cadre juridique et activer (ou rendre visible) le champ collectivité si BEA si et seulement si BEA1, 2 ou 2017 est sélectionné mais je bute à écrire la macro qui fonctionne. J'ai donc besoin de vos éclairages. :super:

Le formulaire Frm_Modification est quasiment à maturité. J'ai ajouté une macro qui affiche toutes les informations en fonction de la ville saisie. Ca marche très bien (on verra quand les 1200 fiches seront intégrées en production). J'avais basé dans un premier temps initialisation du formulaire sur une requête excluant les projets abandonnés mais je me suis aperçu que je ne pouvais pas modifier les champs transformés en zone de liste.

Merci de vos contributions
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Projet de suivi d'une base immobilière

Message par Piaf »

TempsX a écrit :Pour le formulaire Frm_Création
à tester

Code : Tout sélectionner

Sub BEA()
Dim oForm as Object, lstChoix1 as Object,lstChoix2 as Object,EtiquetteChoix2 as Object
Dim Choix as Integer
	oForm = thisComponent.DrawPage.Forms.getByName("Formulaire")
	lstChoix1 = oForm.getByName("Cadre_juridique")
	lstChoix2 = oForm.getByName("Collectivite_BEA")
	EtiquetteChoix2 = oForm.getByName("Étiquette de Collectivite_BEA")
	Choix = lstChoix1.valueItemList(lstChoix1.SelectedItems(0))
	Select Case Choix
		Case 2,3,4
			lstChoix2.EnableVisible = True
			EtiquetteChoix2.EnableVisible = True
		Case Else
			lstChoix2.EnableVisible = False
			EtiquetteChoix2.EnableVisible = False
	End Select		
End Sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Piaf a écrit : à tester
Parfait Piaf, un grand merci. J'ai affecté la macro à l'événement "statut de l"élément modifié". A partir de ta macro et celle de jeanmimi dans un post précédent, je suis en mesure de les adapter à d'autres usages.

Je m'attaque maintenant à Oracle Report Builder pour la réalisation des documents d'entreprise. Je vous tiens au courant pour enrichir la base de connaissance.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
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: [Base] Projet de suivi d'une base immobilière

Message par jeanmimi »

Le projet initial a remarquablement évolué vers une application très professionnelle, c’est vraiment du beau travail.
TempsX a écrit :Je m'attaque maintenant à Oracle Report Builder pour la réalisation des documents d'entreprise.
à aussi, avec l'aide d'une Macro, il est possible de récupérer les informations affichées dans le formulaire courant pour remplir les champs d'une requête qui servira à construire le Rapport.
Piaf a proposé plusieurs solutions pour le faire.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

jeanmimi a écrit :Le projet initial a remarquablement évolué vers une application très professionnelle, c’est vraiment du beau travail.
Merci pour le soutien. On peut faire des choses très utiles avec AOO ou LIbOO
jeanmimi a écrit : .... avec l'aide d'une Macro, il est possible de récupérer les informations affichées dans le formulaire courant pour remplir les champs d'une requête qui servira à construire le Rapport.
Piaf a proposé plusieurs solutions pour le faire.
Je ne manquerai pas de parcourir le forum à la recherche d'idées ou de solutions
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Re bonsoir

J'ai appliqué à la lettre la macro de Piaf s'agissant de récupérer le texte d'un contrôle et de la passer en paramètre dans une requête pour ouvrir ensuite un rapport comme indiqué dans le lien https://forum.openoffice.org/fr/forum/v ... te#p226886

Code : Tout sélectionner

 strSQL = "SELECT ""T_Projet"".""IDProjet"", ""T_Projet"".""Nom_Commune"", ""T_Phasage"".""Phasage"", ""T_MotifOP"".""Motif_Operation"" FROM ""T_Projet"", ""T_MotifOP"", ""T_Phasage"" WHERE ""T_Projet"".""Motif_operation"" = ""T_MotifOP"".""IDMotif"" AND ""T_Projet"".""Etat_projet"" = ""T_Phasage"".""IDPhasage"" AND ""T_Projet"".""Nom_Commune"" =" & Apos(NomEnCours)

et ça fonctionne :super:

J'ai crée ma requête suivant le même modèle

Code : Tout sélectionner

strSQL = "SELECT ""T_Projet"".""IDProjet"", ""T_Projet"".""Nom_Commune"", ""T_Departement"".""Code_dpt"", ""T_Departement"".""Departement"", ""T_Region"".""Region"", ""T_NatureOP"".""Nature_Operation"", ""T_MotifOP"".""Motif_Operation"", ""T_Phasage"".""Phasage"", ""T_Projet"".""Nbre_UL"", ""T_Collectivite"".""Collectivite_territoriale"", ""T_OperateurPrive"".""Maitrise_d'ouvrage"", ""T_Subvention"".""Subvention"", ""T_Projet"".""Validite_API"", ""T_Projet"".""Nbre_logements"", ""T_Projet"".""Nbre_hebergements"", ""T_CadreJuridique"".""Type_CJ"", ""T_Projet"".""Superficie_utile"", ""T_Projet"".""Date_API"", ""T_Projet"".""Date_NATCJ"", ""T_Projet"".""Date_ALT"", ""T_Projet"".""Date_DT"", ""T_Projet"".""Loyer_agree"", ""T_Projet"".""Notes"", ""T_Projet"".""Nmr_agrement"", ""T_Projet"".""LST"", ""T_Projet"".""Logements"", ""T_Projet"".""QuotePart_LST"", ""T_Projet"".""Prolongation_API"", ""T_Projet"".""Date_LC"" FROM ""T_Projet"", ""T_Departement"", ""T_Region"", ""T_NatureOP"", ""T_MotifOP"", ""T_Phasage"", ""T_Collectivite"", ""T_OperateurPrive"", ""T_Subvention"", ""T_CadreJuridique"" WHERE ""T_Projet"".""Departement"" = ""T_Departement"".""IDDepartement"" AND ""T_Departement"".""Region_Adm"" = ""T_Region"".""IDRegion"" AND ""T_Projet"".""Nature_operation"" = ""T_NatureOP"".""IDOperation"" AND ""T_Projet"".""Motif_operation"" = ""T_MotifOP"".""IDMotif"" AND ""T_Projet"".""Etat_projet"" = ""T_Phasage"".""IDPhasage"" AND ""T_Projet"".""Collectivite_BEA"" = ""T_Collectivite"".""IDCollectivite"" AND ""T_Projet"".""Maitre_ouvrage"" = ""T_OperateurPrive"".""IDMoa"" AND ""T_Projet"".""Etat_subvention"" = ""T_Subvention"".""IDSubvention"" AND ""T_Projet"".""Cadre_juridique"" = ""T_CadreJuridique"".""IDCadreJuridique"" AND ""T_Projet"".""Nom_Commune"" =" & Apos(NomEnCours)
mais quand je l’exécute :
(dans le module Requête) je n'ai que le 1er enregistrement qui est généré alors que je devrais les avoir tous n'ayant pas mis de critère :roll:
(comme paramètre dans le formulaire Modification) j'ouvre un rapport ..... blanc !! :fou:

J'ai beau passer en revue l'ensemble de la syntaxe SQL, je n'arrive pas à trouver la source du problème.

Je vous joins ma base dans laquelle j'ai mis le code de Piaf et le mien. Il suffit de décommenter l'un ou l'autre pour faire des tests (ne pas oublier aussi de modifier dans ORB la source des données)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
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: [Base] Projet de suivi d'une base immobilière

Message par jeanmimi »

Si j'exécute la requête R_TestMacroPiaf, en supprimant le nom de la commune que tu as entrée comme critère, Lille, le code suivant me donne bien tous les enregistrements :

Code : Tout sélectionner

SELECT "T_Projet"."IDProjet", "T_Projet"."Nom_Commune", "T_Phasage"."Phasage", "T_MotifOP"."Motif_Operation" FROM "T_Projet", "T_MotifOP", "T_Phasage" WHERE "T_Projet"."Motif_operation" = "T_MotifOP"."IDMotif" AND "T_Projet"."Etat_projet" = "T_Phasage"."IDPhasage"
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

jeanmimi a écrit :Si j'exécute la requête R_TestMacroPiaf, en supprimant le nom de la commune que tu as entrée comme critère, Lille, le code suivant me donne bien tous les enregistrements
La macro de Piaf fonctionne bien soit avec un paramètre soit sans paramètre. C'est la mienne qui ne fonctionne pas. Certes elle est plus longue car j'ai besoin d'avoir tous les champs. J'ai relu l'ensemble des champs, vérifier les " et je ne comprends toujours pas d'où vient le problème. Il faut dire qu'il était tard hier soir. Je vais m'y remettre à midi, table par table, liaison par liaison pour essayer de trouver quel(s) champ(s) ne fonctionne(nt) pas.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Projet de suivi d'une base immobilière

Message par Piaf »

Bonjour
Pour ta requête, le problème vient du type de jointures.
Teste

Code : Tout sélectionner

SELECT "T_Projet"."IDProjet", "T_Projet"."Nom_Commune", "T_Departement"."Code_dpt", "T_Departement"."Departement", "T_Region"."Region", "T_NatureOP"."Nature_Operation", "T_MotifOP"."Motif_Operation", "T_Phasage"."Phasage", "T_Projet"."Nbre_UL", "T_Collectivite"."Collectivite_territoriale", "T_OperateurPrive"."Maitrise_d'ouvrage", "T_Subvention"."Subvention", "T_Projet"."Validite_API", "T_Projet"."Nbre_logements", "T_Projet"."Nbre_hebergements", "T_CadreJuridique"."Type_CJ", "T_Projet"."Superficie_utile", "T_Projet"."Date_API", "T_Projet"."Date_NATCJ", "T_Projet"."Date_ALT", "T_Projet"."Date_DT", "T_Projet"."Loyer_agree", "T_Projet"."Notes", "T_Projet"."Nmr_agrement", "T_Projet"."LST", "T_Projet"."Logements", "T_Projet"."QuotePart_LST", "T_Projet"."Prolongation_API", "T_Projet"."Date_LC" FROM { OJ "T_Projet" LEFT OUTER JOIN "T_Departement" ON "T_Projet"."Departement" = "T_Departement"."IDDepartement" LEFT OUTER JOIN "T_NatureOP" ON "T_Projet"."Nature_operation" = "T_NatureOP"."IDOperation" LEFT OUTER JOIN "T_MotifOP" ON "T_Projet"."Motif_operation" = "T_MotifOP"."IDMotif" LEFT OUTER JOIN "T_Phasage" ON "T_Projet"."Etat_projet" = "T_Phasage"."IDPhasage" LEFT OUTER JOIN "T_Collectivite" ON "T_Projet"."Collectivite_BEA" = "T_Collectivite"."IDCollectivite" LEFT OUTER JOIN "T_OperateurPrive" ON "T_Projet"."Maitre_ouvrage" = "T_OperateurPrive"."IDMoa" LEFT OUTER JOIN "T_Subvention" ON "T_Projet"."Etat_subvention" = "T_Subvention"."IDSubvention" LEFT OUTER JOIN "T_CadreJuridique" ON "T_Projet"."Cadre_juridique" = "T_CadreJuridique"."IDCadreJuridique" }, "T_Region" WHERE "T_Departement"."Region_Adm" = "T_Region"."IDRegion" AND "T_Projet"."Nom_Commune" = 'Lille'
Ca devrait le faire
Jointures.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
TempsX
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 22 mars 2007 21:38

Re: [Base] Projet de suivi d'une base immobilière

Message par TempsX »

Piaf a écrit :Bonjour
Pour ta requête, le problème vient du type de jointures.
Bonjour Piaf. Je ne connaissais pas le type de jointure

Code : Tout sélectionner

LEFT OUTER JOIN


Pour enrichir la base de connaissances je mets le lien que je viens de consulter : http://sql.sh/cours/jointures/left-join

Et merci pour ton code



EDIT du 31 janvier 2022

Merci à tous les contributeurs du forum :bravo: qui m'ont permis de créer une base de données qui, 8 ans après sa conception, fonctionne toujours aussi bien :D Riche de plus 4000 enregistrements, 10 tables, 35 requêtes, 7 formulaires et 3 rapports, elle est utilisée par 3 collaborateurs (pas en même temps) et fait l'objet d'une surveillance pointue et d'une sauvegarde journalière. Preuve que Libreoffice n'a rien à envier aux autres suites bureautiques.

Je clôture le sujet. Encore une fois merci à vous qui m'avez fait progresser.
LibreOffice 7.3.1.3 sous LinuxMint20.3 - Cinnamon
Je suis toujours prêt à apprendre, bien que je n'aime pas toujours qu'on me donne des leçons - Winston Churchill