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 :

Générer plusieurs enregistrements à partir d'un autre


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2016
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Générer plusieurs enregistrements à partir d'un autre
    Bonjour à tous,

    L'utilisation de ce forum est une première pour moi et j'espère ne pas être trop novice pour vous

    J'ai besoin de votre aide pour résoudre le problème suivant :

    Je travail sur une table dons le contenu est lié à un tableau Excel.

    Les enregistrement de cette tables sont plutôt classiques et l'un des champs appelé "COLIS" contient une valeur numérique qui varie d'un enregistrement à l'autre.

    J'aimerai générer une deuxième table/Requête qui reprends tous les enregistrements de la table en question en dupliquant chaque enregistrement à l'identique. Le nombre de copie de chaque enregistrement doit être le nombre indiqué dans le champs "COLIS". Voici un exemple d'enregistrement (les champs sont séparés par des - ) :

    CHARPIN - Emmanuel - Genève - Pinot Noir - 5


    Il faudra que la requête fasse apparaitre 5 enregistrement identiques :

    CHARPIN - Emmanuel - Genève - Pinot Noir - 5
    CHARPIN - Emmanuel - Genève - Pinot Noir - 5
    CHARPIN - Emmanuel - Genève - Pinot Noir - 5
    CHARPIN - Emmanuel - Genève - Pinot Noir - 5
    CHARPIN - Emmanuel - Genève - Pinot Noir - 5

    J'espère avoir été le plus clair possible et je vous remercie d'avance pour votre précieux soutien

    Belle soirée à tous !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Autant que je le sache, on ne peut pas faire cela avec du SQL.

    Voici une idée de solution en VBA :

    suppose que tu as une table
    tblDetailColis :
    ClefDetailColis (Auto num)
    Nom
    Prenom
    Ville
    Nb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public sub GenererDetail
       dim db as dao.database: set db=currentdb
       dim r as dao.recordset: set rDetail=db.openrRecordset("tblColis", dbOpneSnapShot)
       dim rDetail as dao.recordset: set rDetail=db.openrRecordset("tblDetailColis", dbOpenDynaset)
       dim iColis as long
     
       do while not r.eof 'parcourt la liste des colis
     
           for iColis=1 to r![Nb] 'Ajoute le nombre détail de colis 
              rDetail.addnew 'Crée le nouveau détail
              'Recopie les informations.
              rDetail[Nom]=r![Nom]
              rDetail[PrenomNom]=r![PrenomNom]
              rDetail[Ville]=r![Ville]
              rDetail[Nb]=r![Nb]
              rDetail.update 'Enregistre le nouveau détail
           next iColis
     
          r.mobvenext
       loop
     
       rDetail.close: set rDetail=nothing
       r.close: set r=nothing
       db.close: set db=nothing
    end sub
    Idéalement, il faudrait avoir un identifiant unique de colis car si tu exécutes plusieurs fois ce code, tu auras autant de multiples que d'exécutions :-(.
    Avec un indentifiant unique, tu pourrais détruire les détails existants pour ce colis avant de le recréer.

    Une autre méthode consiste à vider complètement la table de détail avant de créer les détails avec le code.

    A+

Discussions similaires

  1. [Débutant] Générer des enregistrements à partir d'une autre table
    Par tchileldemba dans le forum Linq
    Réponses: 0
    Dernier message: 01/09/2016, 00h50
  2. générer une date à partir d'une autre date
    Par Melody Nelson dans le forum 4D
    Réponses: 2
    Dernier message: 20/08/2007, 16h59
  3. Réponses: 8
    Dernier message: 27/07/2006, 09h09
  4. Générer plusieurs fichiers à partir d'un fichier excel
    Par yas2006 dans le forum Documents
    Réponses: 3
    Dernier message: 02/06/2006, 17h54
  5. Réponses: 3
    Dernier message: 09/07/2004, 10h23

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