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 :

Transposer le contenu d’une table dans une autre:


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut Transposer le contenu d’une table dans une autre:
    Bonsoir,
    J’ai un probleme qui me casse la tete depuis des jours; j’espere pouvoir en trouver la solution ici ou au moins une piste de solution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TableA :
    fn1	fn2	fn3	fn4
    1	2	3	4
    5	6	7	8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table B: elle est vide.
    A	B
    J’aimerais pouvoir TRANSPOER le contenu de TableA dans TableB de facon a obtenir le resultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TableB:
    A	B
    1	5
    2	6
    3	7
    4	8
    Merci d’avance de votre precieuse aide.
    Bonero.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 647
    Points : 14 624
    Points
    14 624
    Par défaut
    Bonsoir,
    je suppose qu'il n'y a pas que 2 enregistrements dans la table. Voici un code qui remplit la table B en stockant les champs dans 2 tableaux tous les 2 enregistrements:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Function ChargeTableB()
    Dim oRstA As Recordset
    Dim oRstB As Recordset
    Dim ChampA() As Variant
    Dim ChampB() As Variant
    Dim I As Integer
     
    Set oRstA = CurrentDb.OpenRecordset("select * from TableA")
    Set oRstB = CurrentDb.OpenRecordset("TableB", dbOpenDynaset)
     
    ' Redimensionnement des tableaux en fonction du nombre de champs
    ReDim ChampA(oRstA.Fields.Count - 1)
    ReDim ChampB(oRstA.Fields.Count - 1)
     
        While Not oRstA.EOF
            If oRstA.AbsolutePosition = 0 Or oRstA.AbsolutePosition Mod 2 = 0 Then
            ' Chargement des colonnes A, enregistrement 1
                For I = 0 To oRstA.Fields.Count - 1
                   ChampA(I) = oRstA.Fields(I)
                Next I
            Else
            ' Chargement des colonnes B, enregistrement 2
                For I = 0 To oRstA.Fields.Count - 1
                   ChampB(I) = oRstA.Fields(I)
                Next I
            End If
     
            If oRstA.AbsolutePosition Mod 2 <> 0 Then
            ' Ajout des enregistrements dans la table B
                For I = 0 To UBound(ChampA)
                    oRstB.AddNew
                    oRstB.Fields(0) = ChampA(I)
                    oRstB.Fields(1) = ChampB(I)
                    oRstB.Update
                Next I
            ' Initialisation des tableaux
                For I = 0 To UBound(ChampA)
                    ChampA(I) = Null
                    ChampB(I) = Null
                Next I
            End If
            oRstA.MoveNext
        Wend
     
        ' Ajout des 4 colonnes A si nombre d'enregistrements est impair (donc tableau A n'est pas null)
        If Not IsNull(ChampA(0)) Then
            For I = 0 To UBound(ChampA)
                oRstB.AddNew
                oRstB.Fields(0) = ChampA(I)
                oRstB.Fields(1) = ChampB(I)
                oRstB.Update
            Next I
        End If
     
      oRstA.Close
      Set oRstA = Nothing
      oRstB.Close
      Set oRstB = Nothing
     
    End Function
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Enregistrer contenu d'une table dans une autre table SOUS CONDITION
    Par Nanadoo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/07/2014, 07h09
  2. Copier le contenu d'une table dans une autre table
    Par kroma23 dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/11/2008, 14h14
  3. recopi des données d'une table dans une autre
    Par moicats dans le forum Access
    Réponses: 5
    Dernier message: 06/04/2006, 21h12
  4. copier une table dans une autre
    Par Dionisos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/07/2005, 11h24
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

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