Champ

Résolu
jccorteccia -  
 Corteccia -
Bonjour,

La base est construite année après année.
Un champ de l'année 2016 comporte la valeur du solde de l'année.
Je souhaite que ce solde soit reporté automatiquement en 2017.
En 2016 j'aurais un champ solde AN et en 2017 un solde AN-1 les deux champs auront bien sur la même valeur. Pour l'instant je rentre les valeurs manuellement dans une table soldes mais il y a toujours une possibilité d'erreur d'ou le souhait d'avoir un automatisme.
MERCI de me répondre

Configuration: Windows / Chrome 78.0.3904.108

13 réponses

  1. Corteccia
     
    Je crée une requête SQL avec la formule que vous m'avez fourni ou une autre que j'ai crée en m'inspirant de la votre.
    Je clique sur exécuter ou tableau le tableau s'ouvre avec tous les champs.
    J'enregistre la requête.
    Je veux l'ouvrir en mode création pour effectuer des manipulations sur les champs addition soustraction etc.
    Je rebascule alors en mode Sql. Donc impossible.
    Solution trouvée. Je crée une nouvelle requête avec la requête SQL précédente comme origine j'enregistre cette dernière requête et je l'ouvre en mode création et j'effectue toutes les manoeuvres.
    Merci pour votre réactivité.
    CDT
    2
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peux-tu détailler le contenu de ta ou de tes tables: leur noms, les noms des champs, et les données?
    0
  3. jccorteccia
     
    Bonsoir il s'agit d'une base de gestion locative.
    Il y a une table pour les années, une pour les lots, une pour les locataires, une pour les recettes, plusieurs pour les dépenses. etc
    Ces tables font des requêtes et notamment une qui compile pour une année donnée les recettes et les dépenses locatives donc un solde. Nous l’appellerons Solde An par exemple pour l'année 2015
    Ce solde doit être transféré l'année suivante en 2016 dans le compte du locataire comme étant le solde de l'année AN-1, 2015, car le solde AN 2016 sera différend.
    J'ai mal résolu le problème en créant une table soldes qui comprend les champs année, nom du locataire Solde An et Solde AN-1.
    Le solde An est rempli par la requête compte annuel.
    Le Champ solde AN-1 est rempli manuellement avec possibilité d'erreur. Je souhaite le rendre automatique.
    Requête Soldes
    Année Nom LOC Solde An-1 Solde AN
    2019 AZE - 2000 0
    2018 AZE - 1000 - 2000
    2017 AZE 0 -1000 etc.
    Requête compte Locataire
    An Nom Loc Recettes Dépenses Solde An-1 Solde Annuel Solde AN
    2018 AZE 2000 3000 -1000 -1000 -2000
    2017 AZE 1000 2000 0 -1000 -1000

    Espérant avoir été clair
    D'avance MERCI
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu détailler les noms des tables, les noms des champs, ainsi que la source SQL de la requête compte annuel?
      je pense qu'il faut supprimer le champ An-1 de la table soldes, et l'obtenir en faisant une requête.
      il est sans doute préférable de supprimer la table soldes.
      0
  4. jccorteccia
     
    BONJOUR, Ce décompte est bon le précédent comporte une inversion.
    La difficulté est que le solde AN devient AN-1 l'année suivante et qu'il se retrouvent sur la même ligne, avec la même valeur.
    Le locataire entre en 2017.
    An_NomLoc_Recettes_Dépenses_SoldeAnnuel_SoldeAn-1_Solde _____________________________________________________Fin d'Année
    2019 AZE_____3500____3000______500__________0_________500
    2018 AZE ____2000____ 3000 ____-1000_______ 1000_________0
    2017 AZE ____3000 ____2000 _____1000 _________0_______1000
    Sur les 3 ans les recettes sont de 8500 les dépenses de 8000 le solde est bien de 500. Le compte est bon.
    Requête:
    Les Champs numéros 00 , 0 , 1 , 2 , 3 , 4 , 5 , 8 proviennent de tables, 6 , 7 , 9 sont calculés.

    00 - Numéro Commun: Numéro d'ordre
    0 - NomLoc: Nom du Locataire
    1 - Total Recettes An Total des recettes de l'année
    2 - Loyer Annuel Loyer que doit payer le locataire par An
    3 -Total Charges An Loc Charges locatives annuelles
    4 - Ordures An Locataire Ordures ménagères annuelles
    5 - Travaux Prop Loc Travaux effectué par le propriétaire
    6 - Debit An Loc 2+3+4+5
    7 - Solde Annuel: 1-6
    8 - Solde An-1 Solde de l'année précédente
    9 - Solde Fin Année 7+8 qui deviendra Solde An-1 l'année suivante

    Si je supprime la table soldes comment entrer dans la requête la valeur Solde An-1 ce que je dois, ou ce que le locataire me doit, des années précédentes, pour établir le solde de fin d'année.

    MERCI pour tout je crois que nous avançons
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu détailler les noms des tables, les noms des champs, ainsi que la source SQL de la requête compte annuel?
      ou partager ton fichier?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jccorteccia
     
    Je veux bien détailler les champs de chaque tables mais cela va faire du volume.
    Quant à partager comment faire.
    Je veux bien faire parvenir la base de données entière mais comment?
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      pour partager la base: tu la postes sur internet (cjoint.com, google drive, ...), puis tu publies le lien ici.
      0
  7. jccorteccia
     
    Voila le lien pour consulter la base, j'ai eu du mal car j'ai du élaguer pas mal de formulaires états etc pour passer en taille.
    En ouvrant "tout dur lr locataire on a une vision d'ensemble.
    Un grand Merci pour tout.
    Le lien a été crée : https://www.cjoint.com/c/ILbpqzjSyI7
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Il faut enregistrer le minimum d'informations dans les tables, et utiliser des requêtes pour afficher les données complètes.

      Par exemple, j'ai regardé la table des loyers.
      Elle devrait contenir un champ avec le numéro du lot et un autre champ avec le numéro du locataire, et aucune autre information à propos du lot et du locataire.

      Il faut supprimer le champ LoyAn-1 de la table loyers.
      Il faut utiliser la requete suivante, qui retourne un champ supplémentaire calculé, LoyerAnPasse.
      SELECT l.*, nz(l1.[LoyAn+1],0) as LoyerAnPasse
      FROM [5 - Les Loyers] as l left join [5 - Les Loyers] AS l1
      on
      l.CodeAnnées=l1.CodeAnnées+1
      and
      l.NomLoc = l1.NomLoc
      and
      l.NomLot=l1.NomLot
      ;

      Je n'ai pas regardé la table des soldes. Je pense qu'il faut totalement la supprimer, et la remplacer par une requête qui fait les calculs. Quel est le nom de la requête qui calcule les compte annuel?
      0
  8. jccorteccia
     
    Bonsoir,
    il s'agit des requêtes compte annuel locataires et compte annuel propriétaires qui porte les n° 50 RQ compte annuel locataires et 50-3 Rq compte annuel propriétaires.
    MERCI je vais mettre en place et réfléchir
    Cordialement
    0
  9. votre
     
    Bonjour,
    Je crois avoir compris mais ma maitrise de la programmation n'est pas la votre comment faire pratiquement pour:Il faut supprimer le champ LoyAn-1 de la table loyers. Compris pas de pb.
    Il faut utiliser la requete suivante, qui retourne un champ supplémentaire calculé, LoyerAnPasse.
    SELECT l.*, nz(l1.[LoyAn+1],0) as LoyerAnPasse
    FROM [5 - Les Loyers] as l left join [5 - Les Loyers] AS l1
    on
    l.CodeAnnées=l1.CodeAnnées+1
    and
    l.NomLoc = l1.NomLoc
    and
    l.NomLot=l1.NomLot

    Je crée donc une requête avec nomLoc, nomLot, Années, Loyer An+1, LoyerAnPasse et le Select.....s'indique où.
    Si j'arrive à faire fonctionner tous mes problèmes sont réglés.
    Merci pour tout
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      le plus simple, c'est de modifier ou créer une requête, même vide, de la visualiser en mode SQL, puis de remplacer le texte affiché par le texte que j'ai proposé:
      SELECT l.*, nz(l1.[LoyAn+1],0) as LoyerAnPasse
      FROM [5 - Les Loyers] as l left join [5 - Les Loyers] AS l1
      on
      l.CodeAnnées=l1.CodeAnnées+1
      and
      l.NomLoc = l1.NomLoc
      and
      l.NomLot=l1.NomLot
      ;
      0
  10. jccorteccia
     
    Bonjour,
    Je butte sur le tableau
    Sélectionner la source de données fichier qui décrit le pilote auquel vous souhaitez vous connecter. Vous pouvez utiliser toute source de données fichier faisant référence à un pilote OCBD installé sur votre machine.
    J'ai fait plusieurs tentatives sans succès, dont syswow64.
    Merci de me répondre
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je ne comprends pas le soucis, et il ne me semble pas lié à la question initiale.
      0
  11. jccorteccia Messages postés 6 Statut Membre
     
    Bonjour, Ce n'est pas lié directement mais lorsque je crée une requête SQL je ne peux l'enregistrer car on me demande un pilote OCDB et je ne trouve pas.
    MERCI
    Cordialement
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je pense que cela se produit parce que tu ne crées pas une requête simple, de la même façon que tu as créé tes requêtes précédentes.
      0
  12. jccorteccia Messages postés 6 Statut Membre
     
    Bonjour, J'ai crée requête simple, j'ai crée une nouvelle base, avec 1 table et 1 requête pas de succès.
    https://www.cjoint.com/c/ILliGxnUAl7
    Peut être que l'image sera parlante.
    Cordialement
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Tu as des dizaines de requêtes dans ta base, telles que celles que tu as mentionnées en #10. Il suffit d'en créer une supplémentaire, puis de la visualiser en mode SQL.
      0
  13. jccorteccia Messages postés 6 Statut Membre
     
    Par un miracle que je m'explique pas je suis parvenu à faire la requête SQL sur les loyers et j'obtiens exactement ce que je voulais.
    Je vais faire la même chose avec les indices An et An-1 des loyers
    et avec les soldes, si je parviens à avoir sur une même ligne les soldes de l'année et de l'année passée.
    J'aurais gagné.
    BRAVO - BRAVO et MERCI je vous tiens au courant
    cordialement
    0
  14. Corteccia
     
    Bonsoir la commande SQL fonctionne j'enregistre la requête mais je ne parviens pas a l'ouvrir en mode création je rebascule en SQL.
    J'ouvre une nouvelle requête avec la requête SQL comme base et la je peux faire tous les calculs. Un peu fastidieux.
    Merci de me répondre et bonne année
    Cordialement
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je ne comprends pas exactement quel est le soucis: en quoi est-ce fastidieux?
      0