OVH Cloud OVH Cloud

Transformation de la structure de ma bdd . Urgent

12 réponses
Avatar
Leol
Salut à tous,
J'ai uen base de donnée qui a cette structure :
ID : Field 1 Field 2
1 Colonne1 aaaaaaaaaaaaaa
2 Colonne2 bbbbbbbbbbbbbbb
3 Colonne1 cccccccccccccccccccccc
4 Colonne2 dddddddddddddd

J'aimerais transformer cette base de donnée en :
ID : Colonne1 : Colonne2:
1 aaaaaaaaaaaaaaa bbbbbbbbbbb
2 ccccccccccccccc dddddddddddd



quelqun saurait il comment faire ?

Merci

2 réponses

1 2
Avatar
Yann
Re-,
Le problème avec cette méthode, c'est que tu fixes les
colonne, hors il se peut qu'il ne sache pas combien il y
a de colonnes (moins de 255 de toutes manière)...

Bye
Yann

-----Message d'origine-----
Attendez un peu ; sous Access, et sans VBA, il existe un
opérateur SQL

trop souvent oublié (et fort puissant) qui s'appelle
UNION !

Il permet de juxtaposer (en lignes successives)
les resultats de requetes distinctes....

En gros l'idee est de Faire

SELECT coID11 , colID2 FROM table 1 AS col1, col 2
UNION
SELECT coID3 , colID4 FROM table 1 AS col1, col 2

Désolé la syntaxe n'est pas exactement celle-là je fais
de tete,

mais il suffit de générer les deux SQL donnant
respectivement

dans deux colonnes,
les deux premières colonnes,
les deux secondes,
et de faire le lien entre elles

AA BA CA DA
AB BB CB DB

donne en extrait
AA BA
AB BB

UNION

CA DA
CB DB

Maintenet si tu veux ré-apparier les xA ensemble,
tu rajoute un champ compteur commun dans tes deux
requetes SQL initiales

et tu referas le tri ensuite !

Aièje bien compris ton objectif ?




"Yann" a écrit dans le message de
news:09bb01c49b2f$ff573510$
Re-,
Si en plus tu ne connais pas access... Aïe Aïe Ouille...

Bye
Yann

-----Message d'origine-----
Je connais pas très bien access.
Pour moi tout ceci est un peu du charabia.
Pourriez vous êtres plus précis ?


Merci
Léo
"Gafish" a écrit dans le
message de news:


Bonjour,

Est ce que tu connais exhaustivement tous tes champs à
créer ?


Si oui tu te crées une table avec tous ces champs.
Ensuite il faut que tu connaisses le VBA. Tu parcours
ta table d'origine,


et
pour chaque ligne tu vas insérer dans le champ de ta
nouvelle table


indiqué
par Field1 sur la table d'origine le contenu du champ
Field2.


Mais comme dit Yann ce n'est pas simple. Car il faut
que tu saches aussi


ce
qui fait rupture pour savoir si tu fais un insert ou
un update sur la


nouvelle table.
Dans ton exemple, surla ligne 1 ce sera un insert,
ensuite ce sera un


update, puis à nouveau un insert.

Arnaud

"Leol" <Léo> a écrit dans le message de
news:41484add$0$15561$
C'est sur ?
Qu'est ce que je peux faire alors ?

Léo
"Yann" a écrit dans le
message de news:



092501c49b2a$832a0f80$
Salut Leol,
Ca ressemble légèrement à un tableau croisé
dynamique,



mais ça ne fait ressemble et ça n'en est pas un...

Autrement dit, je ne sais pas, et je ne pens pas que
ce



soit possible... simplement...

Bye
Yann

-----Message d'origine-----
Salut à tous,
J'ai uen base de donnée qui a cette structure :
ID : Field 1 Field 2
1 Colonne1 aaaaaaaaaaaaaa
2 Colonne2 bbbbbbbbbbbbbbb
3 Colonne1 cccccccccccccccccccccc
4 Colonne2 dddddddddddddd

J'aimerais transformer cette base de donnée en :
ID : Colonne1 :
Colonne2:




1 aaaaaaaaaaaaaaa
bbbbbbbbbbb




2 ccccccccccccccc
dddddddddddd







quelqun saurait il comment faire ?

Merci




.










.




.







Avatar
YannX
Rajoute un RECCOUNT() dans chacune des deux requetes SELECT ci-dessous
(ou peut-etre une autre fonction qui te génère le n° d'enregistrement
d'origine)
ou tout autre champ unique de la table d'origine
Il suffira de re-trier par dessus la requete en sortie.

Bye


"Leol" <Léo> a écrit dans le message de
news:41485ba1$0$15562$
Parfaitement mais je n'ai pas compris comment adapter ton système à ma
structure.
Pourrais tu être plus précis sur ce champ compteur ?


Léo
"YannX" a écrit dans le message de news:
#
Attendez un peu ; sous Access, et sans VBA, il existe un opérateur SQL
trop souvent oublié (et fort puissant) qui s'appelle UNION !
Il permet de juxtaposer (en lignes successives)
les resultats de requetes distinctes....

En gros l'idee est de Faire

SELECT coID11 , colID2 FROM table 1 AS col1, col 2
UNION
SELECT coID3 , colID4 FROM table 1 AS col1, col 2

Désolé la syntaxe n'est pas exactement celle-là je fais de tete,
mais il suffit de générer les deux SQL donnant respectivement
dans deux colonnes,
les deux premières colonnes,
les deux secondes,
et de faire le lien entre elles

AA BA CA DA
AB BB CB DB

donne en extrait
AA BA
AB BB

UNION

CA DA
CB DB

Maintenet si tu veux ré-apparier les xA ensemble,
tu rajoute un champ compteur commun dans tes deux requetes SQL initiales
et tu referas le tri ensuite !

Aièje bien compris ton objectif ?




"Yann" a écrit dans le message de
news:09bb01c49b2f$ff573510$
Re-,
Si en plus tu ne connais pas access... Aïe Aïe Ouille...

Bye
Yann

-----Message d'origine-----
Je connais pas très bien access.
Pour moi tout ceci est un peu du charabia.
Pourriez vous êtres plus précis ?


Merci
Léo
"Gafish" a écrit dans le
message de news:


Bonjour,

Est ce que tu connais exhaustivement tous tes champs à
créer ?


Si oui tu te crées une table avec tous ces champs.
Ensuite il faut que tu connaisses le VBA. Tu parcours
ta table d'origine,


et
pour chaque ligne tu vas insérer dans le champ de ta
nouvelle table


indiqué
par Field1 sur la table d'origine le contenu du champ
Field2.


Mais comme dit Yann ce n'est pas simple. Car il faut
que tu saches aussi


ce
qui fait rupture pour savoir si tu fais un insert ou
un update sur la


nouvelle table.
Dans ton exemple, surla ligne 1 ce sera un insert,
ensuite ce sera un


update, puis à nouveau un insert.

Arnaud

"Leol" <Léo> a écrit dans le message de
news:41484add$0$15561$
C'est sur ?
Qu'est ce que je peux faire alors ?

Léo
"Yann" a écrit dans le
message de news:



092501c49b2a$832a0f80$
Salut Leol,
Ca ressemble légèrement à un tableau croisé
dynamique,



mais ça ne fait ressemble et ça n'en est pas un...

Autrement dit, je ne sais pas, et je ne pens pas que
ce



soit possible... simplement...

Bye
Yann

-----Message d'origine-----
Salut à tous,
J'ai uen base de donnée qui a cette structure :
ID : Field 1 Field 2
1 Colonne1 aaaaaaaaaaaaaa
2 Colonne2 bbbbbbbbbbbbbbb
3 Colonne1 cccccccccccccccccccccc
4 Colonne2 dddddddddddddd

J'aimerais transformer cette base de donnée en :
ID : Colonne1 :
Colonne2:




1 aaaaaaaaaaaaaaa
bbbbbbbbbbb




2 ccccccccccccccc
dddddddddddd







quelqun saurait il comment faire ?

Merci




.










.














1 2