Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

11 réponses
Avatar
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.

10 réponses

1 2
Avatar
3stone
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)
Avatar
Bernard

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)




Avatar
3stone
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)
Avatar
Bernard

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)




Avatar
Michel_D
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" a écrit dans le message de news:
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.


Avatar
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.


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" a écrit dans le message de news:
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.






Avatar
Michel_D
"Bernard" a écrit dans le message de 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.

Avatar
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" a écrit dans le message de 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.





Avatar
Michel_D
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" a écrit dans le message de 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" a écrit dans le message de
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.







Avatar
Michel_D
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" a écrit dans le message de
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" a écrit dans le message de
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.










1 2