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

Requêtes et SQL. Discussion :

Séparer une ligne d'une table en plusieurs ligne et les copiers dans une autre table


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 37
    Points : 13
    Points
    13
    Par défaut Séparer une ligne d'une table en plusieurs ligne et les copiers dans une autre table
    Bonjour, tout est dans le titre
    Je souhaiterai couper une longue ligne de table en plusieurs lignes mais je vois pas la requête SQL qui faut faire ...
    J'espère que vous réussirez a comprendre le fichier

    En vous remerciant !
    Nom : exemple pour access.png
Affichages : 695
Taille : 20,2 Ko

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,
    La solution ne viendra pas d'Acces mais d'Excel.
    Il faut commencer par convertir dans Excel ce tableau en liste comme souhaité et ensuite reprendre ou lier cette liste dans Access.
    Pour la conversion en liste dans Excel:
    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
    27
    28
    29
    30
    31
    Option Explicit
     
    Sub Lister()
       Dim kID As Long, kCmax As Long, kC As Long, kR As Long, k As Long
       Dim wSh1 As Worksheet, wSh2 As Worksheet
       Set wSh1 = Worksheets("Feuil1")     '--- feuille tableau données
       Set wSh2 = Worksheets("Feuil2")     '--- feuille destination liste
       wSh1.Select
       kID = 1
       kCmax = Cells(1, Columns.Count).End(xlToLeft).Column  '--- n° de la dernière colonne en ligne 1
       kR = 2
       kID = 1
       With wSh2
          .Cells.Clear                                       '--- nettoyage Feuil2
          Range("A1:H1").Copy .Range("A1:H1")                '--- copie titre
          While Cells(kR, 1) <> ""
             For kC = 3 To kCmax Step 6
                kID = kID + 1
                .Cells(kID, 1) = kID - 1
                .Cells(kID, 2) = Cells(kR, 2)
                For k = 0 To 5
                   .Cells(kID, 3 + k) = Cells(kR, kC + k)
                Next k
             Next kC
             kR = kR + 1
          Wend
       End With
       wSh2.Select
       Set wSh2 = Nothing
       Set wSh1 = Nothing
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Bonjour ricDgn
    En fait la photo était pour expliquer le problème.
    Je me suis mal exprimé,
    J'ai ce problème sous access, j'aimerais trouver une requête SQL qui puisse me séparer la ligne en plusieurs lignes.

    Merci quand même de votre aide

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    LaTope,

    Merci d’expliquer plus précisément ton problème avec un exemple sur la base d’un enregistrement de ta base.

    Mais imaginons l’enregistrment suivant dans la table T

    field1, field2,field3,field4
    a;b;c;d
    e;f;g;h

    Et tu veux découper en 2 enregistrements comme suit
    a;d
    b;c
    e;h
    f;g

    Il faut utiliser union
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT field1,field4 FROM T
    UNION
    SELECT field2, field3 FROM T
    Par contre si les règles de séparation sont plus complexes (à bien décrire) vba sera nécessaire avec l’utilisation d’objet recordset comme dans cet exemple ICI
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

Discussions similaires

  1. [AC-2010] Choisir des champs d'un formulaire et les copier dans une autre table
    Par CmzxNene dans le forum VBA Access
    Réponses: 6
    Dernier message: 07/08/2016, 13h32
  2. Réponses: 3
    Dernier message: 20/02/2014, 15h34
  3. Réponses: 4
    Dernier message: 02/03/2012, 11h27
  4. [MySQL] Recupérer plusieurs $POST pour les mettre dans une table
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/06/2010, 20h56

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