requête de mise à jour dans une relation un à un

Le
Bernard
J'ai deux tables ayant une relation un-à-un dans un champ à clé unique. L'un
des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
n'en contient que 200

Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #6383811
Bonjour *aussi*

"Bernard"
| J'ai deux tables ayant une relation un-à-un dans un champ à clé unique.


- Pourquoi une relation "un à un" ?
- il n'y a pas de relation "dans" un champ, mais entre deux champs de deux tables
- l'un des champs *doit* être clé primaire (forcément unique) et l'autre champ
dans "l'autre" table sera clé externe, mais pas primaire !



| L'un
| des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
| Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
| n'en contient que 200

- un champ ne comprend pas d'enregistement, mais la table...
- expliquer pourquoi cette relation 1 à 1

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Bernard
Le #6383731

Bonjour *aussi*

"Bernard"
| J'ai deux tables ayant une relation un-à-un dans un champ à clé unique.


- Pourquoi une relation "un à un" ?
- il n'y a pas de relation "dans" un champ, mais entre deux champs de deux tables
- l'un des champs *doit* être clé primaire (forcément unique) et l'autre champ
dans "l'autre" table sera clé externe, mais pas primaire !

OK. La relation existe entre deux champs de deux tables. Tous les deux champs sont une clé primaire. Au fait, je dois lier deux tables appartenant à deux fichiers mdb différents.

| L'un
| des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
| Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
| n'en contient que 200

- un champ ne comprend pas d'enregistement, mais la table...
- expliquer pourquoi cette relation 1 à 1

Les deux champs des deux tables sont en quelque sorte complémentaires. Les données du champ 1 de la table A doivent être les mêmes que celles du champ 1 de la table 2
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




3stone
Le #6383711
re,

| > "Bernard"
| > | J'ai deux tables ayant une relation un-à-un dans un champ à clé unique.
| >
| >
| > - Pourquoi une relation "un à un" ?
| > - il n'y a pas de relation "dans" un champ, mais entre deux champs de deux tables
| > - l'un des champs *doit* être clé primaire (forcément unique) et l'autre champ
| > dans "l'autre" table sera clé externe, mais pas primaire !
| >
|
| OK. La relation existe entre deux champs de deux tables. Tous les deux champs sont une clé
primaire. Au fait, je dois lier deux tables appartenant à deux fichiers mdb différents.

Tu as lié la table B ?
Les deux champs sont bien du même type ?
Dans ce cas, fais une requête sur la table 1 et 2
Entre tables de bases différentes, impossible d'obtenir l'intégrité référencielle
via les relations...


| > | L'un
| > | des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
| > | Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
| > | n'en contient que 200
| >
|
| > - un champ ne comprend pas d'enregistement, mais la table...
| > - expliquer pourquoi cette relation 1 à 1
|
| Les deux champs des deux tables sont en quelque sorte complémentaires. Les données du champ 1 de
la table A doivent être les mêmes que celles du champ 1 de la table 2

J'ai peur que tu as ou que tu essaies de construire une usine à gaz...

* Dans une même base *
la clé externe de la table 2 prendra automatiquement la valeur de la clé primaire
de la table 1, a condition que la relation est valide et que les propriétés intégrité
référencielle et mise à jour en cascade soient cochées.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Bernard
Le #6383581

Bonjour *aussi*

"Bernard,
| J'ai deux tables ayant une relation un-à-un dans un champ à clé unique.
Il s'agit plutôt de deux fichiers mdb dont deux tables, avec clé unique, ont une relation de 1 à 1

- Pourquoi une relation "un à un" ?
- il n'y a pas de relation "dans" un champ, mais entre deux champs de deux tables
- l'un des champs *doit* être clé primaire (forcément unique) et l'autre champ
dans "l'autre" table sera clé externe, mais pas primaire !



| L'un
| des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
| Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
| n'en contient que 200

- un champ ne comprend pas d'enregistement, mais la table...
- expliquer pourquoi cette relation 1 à 1
Je voudrais utiliser les données de la table contenant 3.000 enregistrements.
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Michel_D
Le #6383471
Bonjour,

Si le résultat de l'ajout des enregistrements est le suivant :

Table2 de 200 enr. + les 2800 enr. de Table1 = Table1

Autant importer la Table1 et supprimer la Table2


"Bernard"
J'ai deux tables ayant une relation un-à-un dans un champ à clé unique. L'un
des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
n'en contient que 200

Merci de votre aide.


Bernard
Le #6383461
Bonjour Michel.
Je me suis probablement mal exprimé.
J'ai deux fichiers mdb: Jean et Jacques.
Chacun de ces fichiers a une table AA dont le champ MOTO a une clé unique.
Jean.mdb contient 3.000 enregistrements tandis que Jacques n'en compte que 200
Pour enrichir Jacques, je voudrais importer les données de Jean dans MOTO.
La clé unique ne me facilite pas la tâche.
Je sais que je peux créer une table de même structure mais sans clé unique
dans Jacques et y copier les données puis via une requête AJOUT charger ma
table Jacques.
Au lieu de deux requêtes, je n'en veux qu'une.


Bonjour,

Si le résultat de l'ajout des enregistrements est le suivant :

Table2 de 200 enr. + les 2800 enr. de Table1 = Table1

Autant importer la Table1 et supprimer la Table2


"Bernard"
J'ai deux tables ayant une relation un-à-un dans un champ à clé unique. L'un
des deux champs compte 3.000 enregistrements alors que l'autre n'en a que 200
Je ne parviens pas à rajouter les 2.800 enregistrements dans le champ qui
n'en contient que 200

Merci de votre aide.






Michel_D
Le #6383451
"Bernard"
Bonjour Michel.
Je me suis probablement mal exprimé.
J'ai deux fichiers mdb: Jean et Jacques.
Chacun de ces fichiers a une table AA dont le champ MOTO a une clé unique.
Jean.mdb contient 3.000 enregistrements tandis que Jacques n'en compte que 200
Pour enrichir Jacques, je voudrais importer les données de Jean dans MOTO.
La clé unique ne me facilite pas la tâche.
Je sais que je peux créer une table de même structure mais sans clé unique
dans Jacques et y copier les données puis via une requête AJOUT charger ma
table Jacques.
Au lieu de deux requêtes, je n'en veux qu'une.



Si je comprends bien, tu veux enrichir la table "Jacques" mais que ton champ
MOTO (que l'on retrouve dans les deux tables) peut avoir pour un même
enregistrement une valeur différente ce qui t'empéche d'ajouter les
enregistrements manquants via ce champ.

Bernard
Le #6383441
Les enregistrements des champs MOTO de deux tables doivent être identiques.
Le problème provient du fait que les deux tables ont une clé unique, ce qui
rend l'exécution d'une requête AJOUT impossible.


"Bernard"
Bonjour Michel.
Je me suis probablement mal exprimé.
J'ai deux fichiers mdb: Jean et Jacques.
Chacun de ces fichiers a une table AA dont le champ MOTO a une clé unique.
Jean.mdb contient 3.000 enregistrements tandis que Jacques n'en compte que 200
Pour enrichir Jacques, je voudrais importer les données de Jean dans MOTO.
La clé unique ne me facilite pas la tâche.
Je sais que je peux créer une table de même structure mais sans clé unique
dans Jacques et y copier les données puis via une requête AJOUT charger ma
table Jacques.
Au lieu de deux requêtes, je n'en veux qu'une.



Si je comprends bien, tu veux enrichir la table "Jacques" mais que ton champ
MOTO (que l'on retrouve dans les deux tables) peut avoir pour un même
enregistrement une valeur différente ce qui t'empéche d'ajouter les
enregistrements manquants via ce champ.





Michel_D
Le #6383391
Aprés avoir lié la table AA de Jacques.mdb dans Jean.mdb sous le nom AAA

Regarde si cette requête ajout fait ce que tu souhaite (dans Jean.mdb)

INSERT INTO AA
SELECT AAA.*
FROM AAA
WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));

PS: Je pars du principe que les 2 tables AA ont une structure identique.


"Bernard"
Les enregistrements des champs MOTO de deux tables doivent être identiques.
Le problème provient du fait que les deux tables ont une clé unique, ce qui
rend l'exécution d'une requête AJOUT impossible.


"Bernard" news:


Bonjour Michel.
Je me suis probablement mal exprimé.
J'ai deux fichiers mdb: Jean et Jacques.
Chacun de ces fichiers a une table AA dont le champ MOTO a une clé unique.
Jean.mdb contient 3.000 enregistrements tandis que Jacques n'en compte que 200
Pour enrichir Jacques, je voudrais importer les données de Jean dans MOTO.
La clé unique ne me facilite pas la tâche.
Je sais que je peux créer une table de même structure mais sans clé unique
dans Jacques et y copier les données puis via une requête AJOUT charger ma
table Jacques.
Au lieu de deux requêtes, je n'en veux qu'une.



Si je comprends bien, tu veux enrichir la table "Jacques" mais que ton champ
MOTO (que l'on retrouve dans les deux tables) peut avoir pour un même
enregistrement une valeur différente ce qui t'empéche d'ajouter les
enregistrements manquants via ce champ.







Michel_D
Le #6383381
Ooupps j'ai inversé les bases, donc rectification

Aprés avoir lié la table AA de Jean.mdb dans Jacques.mdb sous le nom AAA

Regarde si cette requête ajout fait ce que tu souhaite (dans Jacques.mdb)

INSERT INTO AA
SELECT AAA.*
FROM AAA
WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));

PS: Je pars du principe que les 2 tables AA ont une structure identique.


"Bernard" news:

Les enregistrements des champs MOTO de deux tables doivent être identiques.
Le problème provient du fait que les deux tables ont une clé unique, ce qui
rend l'exécution d'une requête AJOUT impossible.


"Bernard" news:


Bonjour Michel.
Je me suis probablement mal exprimé.
J'ai deux fichiers mdb: Jean et Jacques.
Chacun de ces fichiers a une table AA dont le champ MOTO a une clé unique.
Jean.mdb contient 3.000 enregistrements tandis que Jacques n'en compte que 200
Pour enrichir Jacques, je voudrais importer les données de Jean dans MOTO.
La clé unique ne me facilite pas la tâche.
Je sais que je peux créer une table de même structure mais sans clé unique
dans Jacques et y copier les données puis via une requête AJOUT charger ma
table Jacques.
Au lieu de deux requêtes, je n'en veux qu'une.



Si je comprends bien, tu veux enrichir la table "Jacques" mais que ton champ
MOTO (que l'on retrouve dans les deux tables) peut avoir pour un même
enregistrement une valeur différente ce qui t'empéche d'ajouter les
enregistrements manquants via ce champ.










Publicité
Poster une réponse
Anonyme