Masquer enregistrement après sélection

menyarito -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je suis en train de faire une base de donnée de vente de terrains, j'ai deux tables
clients et terrains, comment je peux faire pourque si on sélection un terrain x pour un client x
le terrain x ne s'affiche plus après pour éviter que deux client auront le même terrain.

merci d'avance pour votre aide

12 réponses

Résumé de la discussion

Gestion d'une base de données de vente de terrains avec deux tables, clients et terrains, nécessite une contrainte d'attribution unique pour empêcher qu'un terrain soit réattribué à plusieurs clients. Plusieurs propositions techniques préconisent une clé étrangère et une contrainte d'unicité: par exemple lier terrains à un identifiant client et bloquer l'allocation si le terrain est déjà occupé. Des exemples évoquent une logique où un terrain attribué n'apparaît plus comme disponible et des requêtes comme select terrains where client is null permettent de lister les terrains libres. D'autres échanges soulignent toutefois la possibilité actuelle de choisir plusieurs terrains par client, ce qui appelle à clarifier le modèle (1‑to‑1 versus 1‑to‑plusieurs) et les règles d'allocation.

Bobot (l'IA à votre service)
  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    je suggère d'utiliser une requête pour afficher uniquement les terrains sans client.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      par exemple:
      select terrains.* were client is null;
      0
  2. menyarito Messages postés 101 Statut Membre
     
    par exemple le terrain 1A est attribué à Mr.x
    si on essaye de l'attribuer à nouveau à Mr.y ça nous
    écrit désolé terrain déjà attribué

    Merci
    0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    quelle est la structure de tes tables?
    0
  4. menyarito Messages postés 101 Statut Membre
     
    TABLE CLIENTS:

    Nom
    Prenom
    Maison choisie

    TABLE MAISONS:
    Bloc
    Numero
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Quelle est la valeur du champ "Maison choisie"dans la table clients?
      Je te suggère d'y enregistrer le N° de la maison.
      0
    2. menyarito Messages postés 101 Statut Membre
       
      Assistant liste de choix => numérique
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. menyarito Messages postés 101 Statut Membre
     
    ça doit être comme ça:
    https://www.cjoint.com/c/GDwnVJM20M3

    merci
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je te suggère d'utiliser cette requête pour la liste des maisons disponibles:
      select * from MAISONS
      WHERE N° not in (SELECT [Maison choisie] from CLIENTS); 
      0
      1. menyarito Messages postés 101 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ça m'affiche le message d'erreur suivant:
        https://www.cjoint.com/c/GDwpfoZgyo3
        0
  7. menyarito Messages postés 101 Statut Membre
     
    yg_be,

    le résultat doit être comme ça:
    https://www.cjoint.com/c/GDwsQhtam13
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      j'ai l'impression que tu peux choisir plusieurs terrains en même temps.
      est-ce exact?
      0
    2. menyarito Messages postés 101 Statut Membre
       
      oui par exemple je peux vendre 3 terrains (1HA, 1HB, 1HC) pour un client
      mais ces 3 terrains ne doivent plus s'afficher dans la liste.
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je ne vois pas dans la base que tu aies essayé. c'est où?
      0
  8. menyarito Messages postés 101 Statut Membre
     
    Bonjour yg_be,
    ok ça marche à 60% par exemple:
    si je sélectionne 1HA, 1HA n'apparait plus dans la liste ce qui est bon
    mais 1HA+1HB apparait.
    https://www.cjoint.com/c/GDxppsMupcv
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      et ainsi
      SELECT maison
      FROM houses
      WHERE houses.[maison] Not In 
      (
      SELECT distinct houses.maison
      FROM Houses INNER JOIN Clients 
      ON Houses.Maison = Clients.House
      or instr(clients.house,houses.maison)>0
      or instr(houses.maison,clients.house) >0 ;
      )
      
      0
  9. menyarito Messages postés 101 Statut Membre
     
    Thanks a lot yg_be,
    you're the best i wish you more success...
    God bless you
    0
  10. menyarito Messages postés 101 Statut Membre
     
    yg_be,

    Dernière question quelles requêtes je dois utiliser pour afficher les terrains déjà vendu et les terrains disponibles.

    Merci d'avance
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      déjà vendus:
      SELECT DISTINCT houses.maison
      FROM Houses INNER JOIN Clients ON Houses.Maison=Clients.House Or instr(clients.house,houses.maison)>0 Or instr(houses.maison,clients.house)>0;

      disponibles: c'est la requête qu tu as utilisée dans le formulaire.
      0
  11. menyarito Messages postés 101 Statut Membre
     
    Merci beaucoup
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      you'r welcome
      0
  12. menyarito Messages postés 101 Statut Membre
     
    c'est normal d'avoir deux fois 1HA dans le champ House?

    Non, et c'est d’ailleurs ça qu'on cherche à éviter
    -1
  13. menyarito Messages postés 101 Statut Membre
     
    je ne vois pas dans la base que tu aies essayé. c'est où

    ici:
    https://www.cjoint.com/c/GDxbOy80PnW

    la requête a fonctionné pour vous ?
    -1
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      comme tu as changé ta base entre-temps, j'ai adapté la requête:
      SELECT maison
      FROM houses
      WHERE maison not in (SELECT house from CLIENTS);
      

      puis tu utilises cette requête comme "row source" de ton "combo box".
      tiens, ne devrait-ce pas être une "list box"?
      0