OVH Cloud OVH Cloud

Fusion de tables

10 réponses
Avatar
WD
Je sais fusionner plusieurs tables à l'aide de la requête fusion, mais on ne
sait alors plus modifier les données. Pour contrer ceci est-il possible de
fusionner plusieurs tables en une seule dans une même Base de données ?

Je m'explique :
Table 1
N° Parent
Nom parent
Prénom parent
N° Adresse
Table 2
N° Enfant
N° Parent
Nom enfant
Prénom enfant
N° Adresse
Table 3
N° Adresse
Rue
Ville

Résultat souhaité :
Table 4
N° (N° Parent et N° Enfant)
Nom
Prénom
Rue
Ville

Merci
Dominique

10 réponses

Avatar
3stone
Salut,

WD
Je sais fusionner plusieurs tables à l'aide de la requête fusion, mais on ne
sait alors plus modifier les données. Pour contrer ceci est-il possible de
fusionner plusieurs tables en une seule dans une même Base de données ?

Je m'explique :
Table 1
N° Parent
Nom parent
Prénom parent
N° Adresse
Table 2
N° Enfant
N° Parent
Nom enfant
Prénom enfant
N° Adresse
Table 3
N° Adresse
Rue
Ville

Résultat souhaité :
Table 4
N° (N° Parent et N° Enfant)
Nom
Prénom
Rue
Ville



Oui, bien sûr... avec une première requête de création de table...
Table1 vers table4 avec ajout des nouveaux champs,
ensuite, deux requêtes de mise à jour...


Mais, tous ces problèmes surviennent à cause d'une erreur de conception !

Tu ne doit avoir qu'un table "T_Personne" dans laquelle se retouvent
aussi bien les parents que les enfants.

Cela devrait ressembler à ceci...

NoPersonne (clé primaire)
NomPersonne
PrénomPersonne
NoPere (clé externe)
NoMere (clé externe)
+ les autres champs nécessaires
DateNaissance
Adresse1
Adresse2
...


Dans la fenêtre des relations, tu amène 2 fois la table "T_Personne",
la copie ( fantôme, car non "réellement" copiée) pennant automatiquement
le nom de "T_Personne1".

Tu crée une relation entre :

NoPere de la table "T_Personne" vers NoPersonne de "T_Personne1"

et une autre relation partant de :

NoMere de la table "T_Personne" vers NoPersonne de "T_Personne1"


De cette facon, nul besoin de requête UNION ni de table barbare...
Cela autorise aussi à un élève de devenir "Parent" à son tour ;-)

Pour la saisie, il suffit de 2 combobox pour désigner le père et la mère.
Ces 2 listes comprendront les champs nécessaires pour identifier un
individu avec minimum :

NoPersonne, NomPersonne, PrénomPersonne.

La valeur de NoPersonne (clé primaire...) sera sauvée dans les
champs respectifs, NoPere et NoMere pour désigner... les parents.


Des requêtes maintenant très simple permettent soit de sélectionner
les parents d'une personne... soit, tous les enfants de tel père
et / ou telle mère.


J'espère que ceci t'aidera à démarrer.



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
WD
un grand merci pour l'aide très appréciée, je vais essayer ...
a+
Dominique

"3stone" a écrit dans le message de news:

Salut,

WD
Je sais fusionner plusieurs tables à l'aide de la requête fusion, mais
on ne


sait alors plus modifier les données. Pour contrer ceci est-il possible
de


fusionner plusieurs tables en une seule dans une même Base de données ?

Je m'explique :
Table 1
N° Parent
Nom parent
Prénom parent
N° Adresse
Table 2
N° Enfant
N° Parent
Nom enfant
Prénom enfant
N° Adresse
Table 3
N° Adresse
Rue
Ville

Résultat souhaité :
Table 4
N° (N° Parent et N° Enfant)
Nom
Prénom
Rue
Ville



Oui, bien sûr... avec une première requête de création de table...
Table1 vers table4 avec ajout des nouveaux champs,
ensuite, deux requêtes de mise à jour...


Mais, tous ces problèmes surviennent à cause d'une erreur de conception !

Tu ne doit avoir qu'un table "T_Personne" dans laquelle se retouvent
aussi bien les parents que les enfants.

Cela devrait ressembler à ceci...

NoPersonne (clé primaire)
NomPersonne
PrénomPersonne
NoPere (clé externe)
NoMere (clé externe)
+ les autres champs nécessaires
DateNaissance
Adresse1
Adresse2
...


Dans la fenêtre des relations, tu amène 2 fois la table "T_Personne",
la copie ( fantôme, car non "réellement" copiée) pennant automatiquement
le nom de "T_Personne1".

Tu crée une relation entre :

NoPere de la table "T_Personne" vers NoPersonne de "T_Personne1"

et une autre relation partant de :

NoMere de la table "T_Personne" vers NoPersonne de "T_Personne1"


De cette facon, nul besoin de requête UNION ni de table barbare...
Cela autorise aussi à un élève de devenir "Parent" à son tour ;-)

Pour la saisie, il suffit de 2 combobox pour désigner le père et la mère.
Ces 2 listes comprendront les champs nécessaires pour identifier un
individu avec minimum :

NoPersonne, NomPersonne, PrénomPersonne.

La valeur de NoPersonne (clé primaire...) sera sauvée dans les
champs respectifs, NoPere et NoMere pour désigner... les parents.


Des requêtes maintenant très simple permettent soit de sélectionner
les parents d'une personne... soit, tous les enfants de tel père
et / ou telle mère.


J'espère que ceci t'aidera à démarrer.



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------









Avatar
WD
C'est tout à fait ce que j'attendais. Encore merci
Mais maintenant .....
Est-il possible, à partir de là, obtenir un état reprenant tous les noms de
la table "T_Personne" avec la présentation suivante : ... ?

NomParent_1
NomEnfant1
NomEnfant2
NomEnfant3
NomParent_2
NomEnfant1
NomParent_3
NomParent_4
...

Je m'excuse mais je suis un vrai débutant !!!
Je présume que je devrai passer par une requête pour obtenir le résultat
désiré !!??
Comment formuler cette requête ?
Encore merci ... je promets de ne plus vous embêter ... du moins je l'espère
;-)

A+
Dominique
Avatar
Anor
Bonjour WD

je n'ai pas suivi le fil, mais ta requête devra présenter le résultat sous la forme
parent1 enfant1
parent1 enfant2
parent1 enfant3
parent2 enfant1
parent3
etc...

Ensuite, l'assistant état, basé sur cette requête, te permettra de réaliser
un regroupement sur parent

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
--------------------------------------------------

WD a confié :
| C'est tout à fait ce que j'attendais. Encore merci
| Mais maintenant .....
| Est-il possible, à partir de là, obtenir un état reprenant tous les
| noms de la table "T_Personne" avec la présentation suivante : ... ?
|
| NomParent_1
| NomEnfant1
| NomEnfant2
| NomEnfant3
| NomParent_2
| NomEnfant1
| NomParent_3
| NomParent_4
| ...
|
| Je m'excuse mais je suis un vrai débutant !!!
| Je présume que je devrai passer par une requête pour obtenir le
| résultat désiré !!??
| Comment formuler cette requête ?
| Encore merci ... je promets de ne plus vous embêter ... du moins je
| l'espère ;-)
|
| A+
| Dominique
Avatar
WD
Bonjour Anor

merci pour la réponse si rapide.
Je comprends très bien le résultat que je dois obtenir dans la requête.
Mon problème est que, basé sur la table telle que présentée par 3stone, càd
où tous les noms sont dans la même table, je ne vois pas comment formuler la
requête pour obtenir ce résultat !?
Est-ce possible ?

merci
a+
dominique

"Anor" a écrit dans le message de news:
u4$
Bonjour WD

je n'ai pas suivi le fil, mais ta requête devra présenter le résultat sous
la forme

parent1 enfant1
parent1 enfant2
parent1 enfant3
parent2 enfant1
parent3
etc...

Ensuite, l'assistant état, basé sur cette requête, te permettra de
réaliser

un regroupement sur parent

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
--------------------------------------------------

WD a confié :
| C'est tout à fait ce que j'attendais. Encore merci
| Mais maintenant .....
| Est-il possible, à partir de là, obtenir un état reprenant tous les
| noms de la table "T_Personne" avec la présentation suivante : ... ?
|
| NomParent_1
| NomEnfant1
| NomEnfant2
| NomEnfant3
| NomParent_2
| NomEnfant1
| NomParent_3
| NomParent_4
| ...
|
| Je m'excuse mais je suis un vrai débutant !!!
| Je présume que je devrai passer par une requête pour obtenir le
| résultat désiré !!??
| Comment formuler cette requête ?
| Encore merci ... je promets de ne plus vous embêter ... du moins je
| l'espère ;-)
|
| A+
| Dominique




Avatar
3stone
Salut,

"WD"
C'est tout à fait ce que j'attendais. Encore merci
Mais maintenant .....
Est-il possible, à partir de là, obtenir un état reprenant tous les noms de
la table "T_Personne" avec la présentation suivante : ... ?

NomParent_1
NomEnfant1
NomEnfant2
NomEnfant3
NomParent_2
NomEnfant1
NomParent_3
NomParent_4
...
Je présume que je devrai passer par une requête
pour obtenir le résultat désiré !!??
Comment formuler cette requête ?



Excuse le retard...
mais ces derniers jours je ne suis pas beaucoup sur le forum ;-(

Bon, pour ton état... bien sûr il faut passer par une requête.
Et pour cela, il faut penser à ammener 2 fois la table "T_Personne"
Comme toujours, la seconde se voit adjoindre un "1"

Ensuite, de la première table, tu crée la liaison entre le "NoPersonne"
vers le NoPère de la seconde table.
Puis, dans la table de gauche, tu choisis le champ "Nom" pour les "Père"
et dans la table de droite, le champ "Nom" pour les enfants.

En jouant sur la jointure, interne, gauche ou droite, ainsi que sur les critères,
tu peux ne sélectionner que les parents, que les enfants...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
WD
merci beaucoup, je me mets tout de suite au travail

a+
dominique

"3stone" a écrit dans le message de news:

Salut,

"WD"
C'est tout à fait ce que j'attendais. Encore merci
Mais maintenant .....
Est-il possible, à partir de là, obtenir un état reprenant tous les noms
de


la table "T_Personne" avec la présentation suivante : ... ?

NomParent_1
NomEnfant1
NomEnfant2
NomEnfant3
NomParent_2
NomEnfant1
NomParent_3
NomParent_4
...
Je présume que je devrai passer par une requête
pour obtenir le résultat désiré !!??
Comment formuler cette requête ?



Excuse le retard...
mais ces derniers jours je ne suis pas beaucoup sur le forum ;-(

Bon, pour ton état... bien sûr il faut passer par une requête.
Et pour cela, il faut penser à ammener 2 fois la table "T_Personne"
Comme toujours, la seconde se voit adjoindre un "1"

Ensuite, de la première table, tu crée la liaison entre le "NoPersonne"
vers le NoPère de la seconde table.
Puis, dans la table de gauche, tu choisis le champ "Nom" pour les "Père"
et dans la table de droite, le champ "Nom" pour les enfants.

En jouant sur la jointure, interne, gauche ou droite, ainsi que sur les
critères,

tu peux ne sélectionner que les parents, que les enfants...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------









Avatar
WD
Salut 3stone, eh oui c'est encore moi l'emm ...

Cela fonctionne à merveille, mais quid des parents qui n'ont pas d'enfants
??
En suivant tes conseils, j'obtiens sans problème un état me listant tous les
parents avec leurs enfants respectifs.
Mais je n'arrive pas a également faire apparaître dans la liste les parents
qui sont sans enfants !!...
J'ai essayé toutes les options de jointure dans la requête, en vain ceux-ci
sont "inconnus au bataillon".
Je n'ai même pas réussi à créer une requête qui ne me présenterait que les
parents sans enfants. Quel(s) critère(s), et comment le(s) formuler, dois-je
introduire pour obtenir le résultat tant espéré ?
Je sais, je suis un vrai novice en access ...... mais c'est bien pour cela
que je pose des questions !

Encore mille fois merci pour ta patience
A+
Dominique


Excuse le retard...
mais ces derniers jours je ne suis pas beaucoup sur le forum ;-(

Bon, pour ton état... bien sûr il faut passer par une requête.
Et pour cela, il faut penser à ammener 2 fois la table "T_Personne"
Comme toujours, la seconde se voit adjoindre un "1"

Ensuite, de la première table, tu crée la liaison entre le "NoPersonne"
vers le NoPère de la seconde table.
Puis, dans la table de gauche, tu choisis le champ "Nom" pour les "Père"
et dans la table de droite, le champ "Nom" pour les enfants.

En jouant sur la jointure, interne, gauche ou droite, ainsi que sur les
critères,

tu peux ne sélectionner que les parents, que les enfants...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------












Avatar
3stone
Salut,

"WD" a écrit:
Cela fonctionne à merveille, mais quid des parents qui n'ont pas d'enfants ??
En suivant tes conseils, j'obtiens sans problème un état me listant tous les
parents avec leurs enfants respectifs.
Mais je n'arrive pas a également faire apparaître dans la liste les parents
qui sont sans enfants !!...


Ben oui... ;-)
C'est là qu'intervient la partie... (je cite)
"En jouant sur la jointure, interne, gauche ou droite, ainsi que sur les
critères, tu peux ne sélectionner que les parents, que les enfants..."

Donc, dans la requête qui contient 2 fois la table "T_Personnes"
tu crée la relation entre "NoPersonne" de "T_Personnes" et le
"NoPère" de "T_Personnes1"

Ensuite, tu clique sur la jointure (le trait qui relie les tables)
et tu modifie en sélectionnant ( clic droit sur la jointure )
"Inclure tous les enregistrements de la table T_Personnes et seulement
ceux de la table T_Personnes1 pour lequels les champs joints sont égaux"

Affiche ta requête...
Tu remarque que la colonne de gauche affiche tout le monde,
et dans la colonne de droite, chaque enfant concerné...

Si maintenant tu ne veux voir que les "Personnes sans enfants"...
Ta requête en mode édition, tu mets dans la colonne [NomPersonne]
des enfants (la droite), le critère "Is Null" (sans les guillemets, bien sûr)

Cela t'affiche les personnes qui n'ont "rien" dans le champ "Enfant" et donc les personnes... sans
enfants ;-)
D'ailleurs, à l'école, remarque que les "personnes" sans enfants... sont généralement... des élèves
!

Je te conseille de prendre le temps de "jouer" avec ces relations entre table et les critères
(spécialement le "Is Null" )


Je sais, je suis un vrai novice en access ...... mais c'est bien pour cela
que je pose des questions !


Il faut bien commencer un jour...


Encore mille fois merci pour ta patience


Si on vient sur le forum... ce n'est pas sous la menace ;-)
Donc, pas de quoi !


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
WD
merci pour toute l'aide apportée.

Dominique

"3stone" a écrit dans le message de news:

Salut,

"WD" a écrit:
Cela fonctionne à merveille, mais quid des parents qui n'ont pas
d'enfants ??


En suivant tes conseils, j'obtiens sans problème un état me listant tous
les


parents avec leurs enfants respectifs.
Mais je n'arrive pas a également faire apparaître dans la liste les
parents


qui sont sans enfants !!...


Ben oui... ;-)
C'est là qu'intervient la partie... (je cite)
"En jouant sur la jointure, interne, gauche ou droite, ainsi que sur les
critères, tu peux ne sélectionner que les parents, que les enfants..."

Donc, dans la requête qui contient 2 fois la table "T_Personnes"
tu crée la relation entre "NoPersonne" de "T_Personnes" et le
"NoPère" de "T_Personnes1"

Ensuite, tu clique sur la jointure (le trait qui relie les tables)
et tu modifie en sélectionnant ( clic droit sur la jointure )
"Inclure tous les enregistrements de la table T_Personnes et seulement
ceux de la table T_Personnes1 pour lequels les champs joints sont égaux"

Affiche ta requête...
Tu remarque que la colonne de gauche affiche tout le monde,
et dans la colonne de droite, chaque enfant concerné...

Si maintenant tu ne veux voir que les "Personnes sans enfants"...
Ta requête en mode édition, tu mets dans la colonne [NomPersonne]
des enfants (la droite), le critère "Is Null" (sans les guillemets,
bien sûr)


Cela t'affiche les personnes qui n'ont "rien" dans le champ "Enfant" et
donc les personnes... sans

enfants ;-)
D'ailleurs, à l'école, remarque que les "personnes" sans enfants... sont
généralement... des élèves

!

Je te conseille de prendre le temps de "jouer" avec ces relations entre
table et les critères

(spécialement le "Is Null" )


Je sais, je suis un vrai novice en access ...... mais c'est bien pour
cela


que je pose des questions !


Il faut bien commencer un jour...


Encore mille fois merci pour ta patience


Si on vient sur le forum... ce n'est pas sous la menace ;-)
Donc, pas de quoi !


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------