IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Supprimer enregistrement + articles table attachée


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 96
    Points : 43
    Points
    43
    Par défaut Supprimer enregistrement + articles table attachée
    Bonsoir, je ne vais pas vous détailler en long et en large mon problème mais plutôt ce que je souhaiterais avoir car je n'y arrive pas !

    Mon problème se trouve dans le formulaire nommé : "Fiche de dépôt"; des articles (zone bleu) sont attachés à une fiche client (zone verte). J'ai ajouté un bouton pour supprimer une fiche client (bouton à côté de la liste déroulante en haut à gauche). En cliquant il me supprime bien le client. Ce que je souhaiterais en plus, c'est qu'il supprime également les article attachés à ce client.

    comment feriez-vous ?

    merci pour vos lumières si utiles aux débutants.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 96
    Points : 43
    Points
    43
    Par défaut
    si personne n'a de suggestion, peut-être une autre méthode de construire le formulaire pour y arriver ?

    merci

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 206
    Points : 243
    Points
    243
    Par défaut
    En ajoutant l'intégrité référentielle dans les relations et la suppression en cascade, si tu supprime un client, cela supprimera ses produits.

    Pour cela il faut que tes données correspondent

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 96
    Points : 43
    Points
    43
    Par défaut
    merci pour ton conseil mais avec mon niveau je ne comprends pas bien, n'aurais-tu pas un ex pour illustrer ou me détailler la manip. Faut-il tout modifier ou s'agit-il d'un ajout ?

    merci

  5. #5
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut
    Bonsoir,

    Pour ma part, et dans cette configuration, j'utilise cette procédure.
    Sur la propriété "clic" du bouton de suppression, je reprends le code suivant :
    En l'occurence, pour ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM article WHERE (((article.id client)= " & Me![LstClient] & "));"
    DoCmd.RunSQL "DELETE * FROM client WHERE (((client.id client)= " & Me![LstClient] & "));" 
    DoCmd.SetWarnings True
    Bon courage !..

  6. #6
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    Dans mon message de hier soir, j'ai omis de te préciser que j'ai pu constater que ta relation id client de la table client et id client de la table article n'avait pas été créée en intégrité référentielle !..

    D'autre part, ta liste déroulante pour accéder au client (par nom !.. c'est préférable par numéro à clé unique!) c'est bien lorsque tu as 5 clients, mais le jour où tu en auras 3000 !.....

    Enfin dans ce type de formulaire, il faut mieux travailler en recordset !.. Concrétement, ne pas attacher ton formulaire à une source (table ou requête) et à l'aide du code créer un ou plusieurs recordset qui iront chercher individuellement les enregistrements demandés à partir du ou des contrôles indépendants que tu auras créés.

    J'espère ne pas avoir été trop "compliqué"

    Bon courage

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 96
    Points : 43
    Points
    43
    Par défaut
    Bonjour cluster26, merci pour ton commentaire, je pense ne pas avoir trop le choix de recommencer à 0, au sujet de "intégrité référentielle" access ne m'autorise pas l'activation pour je ne sais quelle raison. Pour ce qui est du recordset je ne connais pas mais je vais tacher de trouver des infos. merci pour vos orientations. Si vous avec un lien bien détailler au sujet d'un projet similaire, je suis preneur.

    Une autre question, je pense inévitable de créer une clé primaire de type numauto aléatoire pour créer mes liaisons entre la table - Client, Factures, articles. Je souhaite par la suite que mes lignes d'articles soient nomenclaturées automatiquement de type (001-002....) avec modif en cas de suppression d'une ligne. Le problème c'est qu'on ne sait créer deux numauto dans une même table, comment faire alors ?

    merci à tous.

  8. #8
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut
    Bonsoir,

    J'ai pu vérifier à l'étude de ta base qu'effectivement tu ne pouvais définir l'intégrité référentielle du fait qu'il existait dans ta table article des ID Client qui n'existent pas dans la table client !.. Donc à revoir.

    En ce qui concerne l'attribution d'un numéro unique aléatoire aux clients, aux articles, et aux lignes de factures, c'est une bonne solution !.. Mais je ne discerne pas l'opportunité de donner un nombre aléatoire !..

    En effet, tu vas devoir gérer des numéros de clients et des numéros d'articles qui vont être assez long et quelques fois négatifs !...

    Pour ma part, je vois le MCD ainsi :
    - déterminer un numéro auto pour les numéros de clients de la table client liés avec intégrité référentielle avec le numéro client figurant dans la table facture.

    -déterminer un numéro auto pour les numéros de référence de la facture dans la table facture avec intégrité référentielle sur le numéros de référence de la facture figurant dans la table détail facture

    - déterminer un numéro auto pour les numéro de référence article de la table article avec intégrité référentielle sur le numéro de référence article figurant dans la table détail facture

    La boucle est bouclée !..

    En ce qui concerne ta demande lignes d'articles soient nomenclaturées automatiquement de type (001-002....), tu formates en conséquence.

    Enfin s'agissant de l'évocation des Recordset, tu peux prendre appui sur le tutoriel repris sous ce lien (regarder surtout la partie 5):
    http://warin.developpez.com/access
    /dao/?page=partie_5#L5


    Bon courage !..

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 96
    Points : 43
    Points
    43
    Par défaut
    encore merci pour ton commentaire, j'ai préféré repartir à 0 en suivant tes bons conseils. Quand tu parles de formater en conséquences ! Il s'agit d'une option à coche ou d'un ligne de commande à créer ? Et enfin, si j'ai bien compris, pour les clés primaires, tu me suggère un type numauto mais non aléatoire, une simple incrémentation.

    merci

  10. #10
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    En effet, le type numauto est beaucoup plus facile à gérer sans le positionner en "aléatoire". Quelle est la bonne raison pour utiliser le mode aléatoire ?

    En ce qui concerne ta demande lignes d'articles soient nomenclaturées automatiquement de type (001-002....) , je crois qu'il y a une certaine ambiguïté au niveau de l'interprétation !.. En effet, quand tu évoques le type 001, 002, ..., je ne puis l'interpréter que comme un problème de formatage.

    De plus, et tel que je te l'ai commenté hier soir, pour moi ta table article sera identifiée et incrémentée de cette façon :

    - déterminer un numéro auto pour les numéro de référence article de la table article avec intégrité référentielle sur le numéro de référence article figurant dans la table détail facture

    Bon courage.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2012, 12h38
  2. traces des enregistrements supprimées d'une table MySQL
    Par noopse dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 13/10/2009, 13h58
  3. [VBA Access] supprimer les enregistrements/remplir table/dll
    Par genirette dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/01/2008, 09h23
  4. Réponses: 2
    Dernier message: 12/05/2006, 12h00
  5. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo