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

Access Discussion :

Création d'enregistrements en cascade dans des zones de liste [AC-2000]


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Création d'enregistrements en cascade dans des zones de liste
    Bonjour à tous,

    C'est la première fois que je pose une question sur le forum. D'habitude, je trouve mes réponses, et je remercie tous les contributeurs de questions et de réponses.

    Je vais essayer d'énoncer clairement mon problème, mais je précise que je ne suis de la partie, juste "bidouilleur".

    J'utilise encore Access 2000.
    Ma base comprend entre autres tables :
    - tbl_Dossiers : des dossiers
    - tbl_Pieces : des pièces justificatives à attacher au dossier
    - tbl_LienDossPiece : table relation plusieurs à plusieurs qui fait le lien entre des dossiers et des pièces justificatives à recueillir (tous les dossiers ne nécessitent pas les mêmes pièces)
    - tbl_DossPiecesVerif : cette table hérite de la précédente pour enregistrer des contrôles à faire sur chaque pièce rattachée à un dossier. Exemple : validité, date expiration, document original, etc...
    Je pars du principe que chaque pièce doit subir les mêmes contrôles pour tous les dossiers.

    J'alimente les données ainsi:
    - Sur un dossier, par double-clic (insert into), je sélectionne les pièces à rattacher (from tbl_Pieces)
    J'ai donc 2 zones de liste : celle des pièces disponibles qui met à jour la seconde qui comporte les pièces attachées. La première s'actualise donc des pièces non encore rattachées.

    - L'étape suivante consiste donc à rattacher les controles à faire sur chaque pièce rattachée.
    Pour l'instant, je remplis la table tbl_DossPiecesVerif plus ou moins manuellement. Je me positionne sur l'enregistrement créé (zone de liste) et je lance une requete Ajout qui ajoute les controles nécessaires avec l'ID auto de rattachement (pièce/doss).
    Jusque là, j'espère être clair.

    Je souhaiterais que cette dernière table se remplisse automatiquement après le rattachement de chaque pièce au dossier.
    Je suis donc bloqué à l'étape qui consiste à récupérer l'ID auto créé par le nouvel enregistrement (ds tbl_LienDossPiece). En me positionnant manuellement sur la zone de liste, ma requete Ajout fonctionne bien.

    Donc, comment automatiser tout ça ?
    Ce à quoi j'ai pensé :
    - Après l'ajout du rattachement : récupérer la valeur du champ auto (le dernier a priori).
    - Me positionner automatiquement sur l'enregistrement ainsi créé de la zone de liste.

    (Toutes mes tables comportent des champs auto qui interviennent dans les champs fils.)

    Est-ce la bonne solution ? Et comment faire ?

    Je vous remercie d'avoir pris le temps de me lire et éventuellement de m'éclairer.

    Bonne journée.

    Pascal

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Je n'ai, hélas pas compris grand-chose.

    Ce serait plus clair si tu postais une db avec des données de test (donc aucune donnée confidentielle) : cela permettrait d'être plus concret.

    Et comme j'utilise aussi Access2000, je pourrai peut-être t'aider.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Ajout de ma base 2000
    Bonjour,

    Merci à Claude pour la réponse.

    Ci-joint ma base zippée.

    GestionDossiers.zip

    Le formulaire à ouvrir est [frm_Doss_Lien_Inv].
    J'ai viré un tas de choses. Il est possible qu'il subsiste dans les tables quelques listes qui ne fonctionnent plus...

    Pour info, le client 85, dossier ID =2 est le complet en données de test.

    Merci

    Bien cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Pour l'instant, je remplis la table tbl_DossPiecesVerif plus ou moins manuellement. Je me positionne sur l'enregistrement créé (zone de liste) et je lance une requete Ajout qui ajoute les controles nécessaires avec l'ID auto de rattachement (pièce/doss).
    Je ne comprends pas.
    « je remplis la table tbl_DossPiecesVerif plus ou moins manuellement », veux-tu dire : directement dans la table, sans utiliser le formulaire ?
    Où est cette requête ajout ?

  5. #5
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Difficile à comprendre; je propose que vous reformuliez vos explications en utilisant les noms de table tels qu'ils figurent dans la BD. Si vous avez une tableA, n'écrivez pas "j'ai une table 'tbl_tableA_xyz'" car on ne sait plus si tabeA = 'tbl_tableA_xyz', ou si vous parlez d'une autre table. Je ne m'y retrouve pas dans ce problème qui, à priori paraît simple à résoudre, mais vos explications le rendent indigeste. Désolé !

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Après plusieurs heures, je crois avoir compris... et probablement trouvé une solution très simple.

    Mais avant, peux-tu me dire s'il y a une explication à ceci, qui perturbe la comparaison de mes tests avec la situation actuelle



    La solution que je crois avoir trouvée donnerait plutôt ceci :



    N.B. Le septième est visible si on actionne l'ascenseur ! (L'espace permet d'afficher 6 items.)


  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Proposition de solution

    Considère cette requête :



    Elle va provoquer l’ajout dans Subv_Doss_Pieces_Verif.
    Cependant, si certaines combinaisons de « PieceDossVerif_ID_LD/PieceDossVerif_Proced » sont déjà présentes dans la table, elles seront rejetées.


    Imagine que chaque fois qu’on ajoute un item dans « ZL_DossLienPieces », on exécute la requête : toutes les combinaisons « PieceDossVerif_ID_LD/PieceDossVerif_Proced » seront rejetées à l’exception de celles relatives à la pièce à contrôler que tu viens d’ajouter.
    Dès lors, il suffit d’ajouter les 4 lignes d’instruction décalées à gauche… et c’est dans la poche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ZL_Pieces_List_DblClick(Cancel As Integer)
        'Ajout de la pièce au dossier
        Dim AjoutPiece As String
        AjoutPiece = "insert into Subv_Doss_Lien_Pieces ([PieceDoss_Doss], [PieceDoss_Piece_LD]) values (" & Me.[DosSub_IDA] & "," & Me.[ZL_Pieces_List] & ")"
        CurrentDb().Execute (AjoutPiece)
    'Ajouter les Pièces à vérifier
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "rAjoutVerif"
    DoCmd.SetWarnings True
        Me.ZL_DossLienPieces.Requery
        Me.ZL_Pieces_List.Requery
    Me.ZL_Verifs_Piece.Requery
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Suppression d'un enregistrement à partir d'une zone de liste
    Par DeFCrew dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/09/2009, 15h11
  2. Enregistrer état d'une zone de liste
    Par djunityfr dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/07/2008, 14h46
  3. Réponses: 3
    Dernier message: 18/09/2007, 12h13
  4. Enregistrement suivant d'une zone de liste
    Par biosset dans le forum IHM
    Réponses: 1
    Dernier message: 26/11/2006, 06h43
  5. Remplacer doublons lignes par zone de liste
    Par toto10 dans le forum Access
    Réponses: 5
    Dernier message: 13/07/2006, 12h19

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