[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

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

Messagepar TempsX » 17 Fév 2014 16:18

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: )
Pièces jointes
Sans titre.png
Boutons avec icone
Sans titre.png (8.8 Kio) Consulté 3819 fois
Base immobiliere v1.odb
(151.99 Kio) Téléchargé 183 fois
LibreOffice 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar jeanmimi » 17 Fév 2014 17:42

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.
Pièces jointes
Base immobiliere v2.odb
(167.76 Kio) Téléchargé 152 fois
LibreOffice Version : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15070
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

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

Messagepar TempsX » 17 Fév 2014 22:40

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar jeanmimi » 18 Fév 2014 10:18

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).
Pièces jointes
T_departement.jpg
LibreOffice Version : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15070
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

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

Messagepar TempsX » 21 Fév 2014 11:41

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.
Pièces jointes
Base Locatif v2.odb
(291.26 Kio) Téléchargé 106 fois
LibreOffice 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar Piaf » 21 Fév 2014 19:35

Bonsoir
Un petit exemple sur Statut de l'élément modifié de la case à cocher Operation_mixte
Code : Tout sélectionner   AgrandirRéduire
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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar TempsX » 21 Fév 2014 23:42

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar Piaf » 22 Fév 2014 00:01

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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar TempsX » 22 Fév 2014 21:26

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar Piaf » 23 Fév 2014 01:04

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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar TempsX » 23 Fév 2014 09:40

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar TempsX » 03 Mars 2014 01:10

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
Pièces jointes
Base Locatif v2.03.odb
(167.28 Kio) Téléchargé 109 fois
LibreOffice 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar Piaf » 03 Mars 2014 09:12

TempsX a écrit:Pour le formulaire Frm_Création
à tester
Code : Tout sélectionner   AgrandirRéduire
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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar TempsX » 03 Mars 2014 11:13

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar jeanmimi » 03 Mars 2014 11:20

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 : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15070
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

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

Messagepar TempsX » 03 Mars 2014 15:03

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar TempsX » 06 Mars 2014 00:47

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/viewtopic.php?f=8&t=41439&p=226897&hilit=+rapport+bas%C3%A9+sur+une+requete#p226886

Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
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)
Pièces jointes
Base Locatif v2.05_forumOO.odb
(170.22 Kio) Téléchargé 201 fois
LibreOffice 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar jeanmimi » 06 Mars 2014 09:14

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   AgrandirRéduire
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 : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15070
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

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

Messagepar TempsX » 06 Mars 2014 10:58

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 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38

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

Messagepar Piaf » 06 Mars 2014 11:05

Bonjour
Pour ta requête, le problème vient du type de jointures.
Teste
Code : Tout sélectionner   AgrandirRéduire
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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar TempsX » 06 Mars 2014 13:16

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   AgrandirRéduire
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 : fonctionne parfaitement bien
LibreOffice 5.1.4.2 sous LinuxMint18
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
 
Message(s) : 37
Inscrit le : 22 Mars 2007 22:38


Retour vers Projets

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 8 invité(s)