> Tous les forums > Forum Bureautique
 Liaison d'une table dans plusieurs base de donnéesSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Ditou
  Posté le 20/04/2008 @ 16:58 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai plusieurs bases semblables dont une table (carnet d'adresses) est presque commune (j'ai une colonne Oui/non variable, dans cette table pour chaque base) Je voudrais qu'elles se mettent à jour automatiquement, lors de la modification de cette table dans l'une d'elles.

J'ai tenté la laison : Donnée externe, liaison etc...sans succès. La table liée apparaît, mais aucune modification ne s'enregistre dans la table liée, suite à une modification de la table principale et vice versa.

Comment rendre toutes les propriétés d'une table liée, modifiables.

Merci d'avance.



Modifié par Ditou le 20/04/2008 17:01
Publicité
D-D-Du-06
 Posté le 20/04/2008 à 21:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

si j'ai bien compris, tu as:

1) plusieurs bases (des fichiers mdb);

2) dans chaque base, une table... identique (ou presque identique?).

Si tel est le cas (1 table identique), le plus simple est de la mettre dans une base, et de relier ensuite cette base (donc cette table) avec les autres bases (onglet >> Table, clic droit dans la fenêtre centrale >> Lier une table (recherche de la base commune, puis choix de la table etc. ...).

Voilà, ça devrait fonctionner.

PS: si dans tes bases, via une requête tu ajoutes un champ (la colonne oui/non) à la base commune, tu ne pourras pas via cette requête mettre à jour ta base initiale (du moins, je crois)...

A+

D D Du 06



Modifié par D-D-Du-06 le 20/04/2008 21:04
Ditou
 Posté le 20/04/2008 à 21:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir André du 06, (06, mon rêve !!!)

Tu as très bien compris mon problème.

Je crains que la composition de ma table commune, d'une part avec sa colonne Oui/Non et des données de type texte en majorité, m'empêchent d'arriver à mes fins.

Dois-je donc comprendre que pour avoir des tables liées dont la modification d'une donnée dans une, s'applique à toutes, il faut que les données soit des nombres exclusivement ?

Aucune autre possibilité pour du texte, que ce que je réalise actuellement, c.a.d. copie de la table mise à jour dans les bases concernées, puis substitution dans chaque base après suppression des relations, de la table périmée par la nouvelle en recréant les relations.

Si je ne me suis pas planté, je peux arrêter la "mission impossible". C'est dommage, car je croyais avoir trouvé un filon.

Je te remercie de ton attention et de ton aide, cordialement.



Modifié par Ditou le 20/04/2008 21:32
D-D-Du-06
 Posté le 20/04/2008 à 22:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ReBonjour,

ce n'est pas mission impossible.

Surtout aucun problème avec le format texte (ou autre) pour lier des tables.

Si tableA (de baseA), est bien reliée (par la commande "Lier une table") à baseB (apparaîtra comme "->tableA"), à baseC (apparaîtra comme "->tableA") etc... tu peux sans problème (et peu importe le format des colonnes), mettre à jour tableA depuis baseA, ou baseB ou baseC... A condition que les bases ne soient pas ouvertes en même temps.

Je m'apperçois, que mon post n'apporte rien de plus à ton problème (mais je comprends mal pourquoi cela ne fonctionne pas, chez toi; c'est une opération simple et courante pourtant).

Questions

Combien de bases?

Comment relies-tu la table commune aux autres bases?

Comment mets-tu as jour cette table dans les bases (via formulaire etc. ... ) ?

Voilà...

A+

D D Du 06 (sous la pluie toute la journée, bien grise et humide)



Modifié par D-D-Du-06 le 20/04/2008 22:21
Ditou
 Posté le 20/04/2008 à 23:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re bonsoir,

Merci pour la relance.

J'ai quatre Bases.mdb dont une des tables (nous dirons "carnet d'adresses")est identique sur toutes, hors la fameuse colonne Oui/Non qui indique une participation.

J'ai bien une base"A" que j'ai choisi comme principale, et dont j'ai tenté de relier la fameuse table par la commande "lier une base" à la table jumelle dans la base "B". Le nom de la table liée s'affiche bien avec un 1 automatique, pour la différencier, puisqu'elle porte le même nom dans les quatre bases.

J'essaye de mettre à jour ou modifier une donnée, directement dans la table où je me trouve, sans passer par un formulaire.

A partir de là, aucune des tentatives de modifications de la table base "A" ou de la table base "B" n'est reproduite dans la table liée réciproquement. Quand je tente une modification de structure, j'ai un message en rouge qui m'indique l'impossibilité de modifier les propriétés de ma table liée ???...

Voilà où j'en suis. Merci encore et bonne nuit.

D-D-Du-06
 Posté le 20/04/2008 à 23:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ReBonJour (et dernier post pour aujourd'hui)

j'ai cru comprendre (par ton dernier message) qu'il y avait en fait 2 tables dans tes bases "base2", "base3" etc...:

>> "Mon carnet d'adresses"
>> "Mon carnet d'adresses1" (liée depuis la base1)

et une table dans ta "base1":
>> "Mon carnet d'adresses"


Il n'est pas possible (à mon avis) de modifier une table par l'autre... Et surtout, si les tables sont bien dans leur strucrure (nombre de champs et format des champs) identiques, ce n'est pas ainsi que tu dois procéder.

1) Crée dans une base ("base1"), ta table "Mon carnet d'adresses" (Champs: Nom, Prénom, Adresse 1, CP, Ville, Oui/Non, etc. ...).

2) Par la commande "lier une table" (>> Menu, >> Données externes, >> Lier une table (au clavier ALT, puis f, puis d, puis l) intégre ta table "Mon carnet d'adresses" dans ta "base2", puis "base3" etc...

3) Pour obtenir
"base1"
Table>> "Mon carnet d'adresses"
"base2"
Table>> "Mon carnet d'adresses" (une petite flèche sera présente devant le nom)
"base3"
Table>> "Mon carnet d'adresses" (une petite flèche sera présente devant le nom)

Ainsi, toute modification de données effectuée par une base se répercutera sur toutes les autres bases (y compris sur le champ Oui/Non) ...

En revanche, il est impossible de modifier la structure d'un table liée (ajout ou suppression de champs, modification du format des champs etc. ...).

Bonne nuit...
A+
D D Du 06



Modifié par D-D-Du-06 le 21/04/2008 00:00
Ditou
 Posté le 21/04/2008 à 06:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour D-D 06,

Avec une image c'est plus parlant : première ligne, ma table d'origine , ensuite les tentatives de liaison infructueuses...

D-D-Du-06
 Posté le 21/04/2008 à 09:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re Re Bonjour,

ce message indique que tu souhaites modifier la structure d'une table "liée", ce qui n'est pas possible. Voir mon message précédent.

En revanche si tu souhaites que le contenu (les informations de chaque champ) de ta table "Tireurs engagés" soit modifiable à partir de plusieurs bases, procéde comme indiqué dans mon message précédent:

1) Base1, création de la table "Tireurs engagés";

2) ensuite, tu importes par liaison cette table dans les autres bases...

NB: peut-être une conception de la struture globale de ta (tes?) base(s) à revoir (?)...

Je ne comprends pas trop pourquoi il y a tant de tables portant le même nom... Si elles sont identiques (et que tu souhaites donc les partager, qu'elles soient utilisables par plusieurs bases), procéde comme indiqué plus haut.

Si elles sont différentes (par le nombre de champs, le format de ces derniers etc. ...) alors ce n'est plus un probléme de liaison (de partage, mais plutot de récapitulation de certaines données).

Pour ce qui est mettre à jour 2 tables différentes d'une même base (ou de bases différentes):

il faut faire une fusion des tables indépendantes (et différentes) dans une nouvelle "table". Il faut obligatoirement quelles aient des champs identiques pour la fusion (donc d'abord une requête sur chaque table pour extraire les champs à fusionner, ensuite fusion des requêtes, à chaque ouverture, la requête fusionnée se met à jour. Il faut que le format des champs soit identique).

A+

D D Du 06



Modifié par D-D-Du-06 le 21/04/2008 09:13
Ditou
 Posté le 21/04/2008 à 12:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

D-D-Du-06 a écrit :

Re Re Bonjour,

ce message indique que tu souhaites modifier la structure d'une table "liée", ce qui n'est pas possible. Voir mon message précédent.

Je n'ai aucune intention de ce genre, seuls les données sont concernées

En revanche si tu souhaites que le contenu (les informations de chaque champ) de ta table "Tireurs engagés" soit modifiable à partir de plusieurs bases, procéde comme indiqué dans mon message précédent:

1) Base1, création de la table "Tireurs engagés";

Elle existe dans chacune des bases, donc je ne souhaite pas les recréer.

2) ensuite, tu importes par liaison cette table dans les autres bases...

Il doit y avoir quelque chose que mes capacité limitée d'autodidacte m'enpêchent de saisir.

NB: peut-être une conception de la struture globale de ta (tes?) base(s) à revoir (?)... C'est une piste !

Je ne comprends pas trop pourquoi il y a tant de tables portant le même nom...

A l'origine, je n'ai pas voulu avoir une seule base pour traiter quatre niveaux de compétition. J'ai donc reproduit les tables de la première crée dans les trois autres. Un seule est presque identique, c'est celle dont je voudrais obtenir la mise à jour simultanée, dans les trois autres.

Si elles sont identiques (nous dirons semblables, car elles diffèrent chacune par la case Oui/Non qui indique la participation ou pas) (et que tu souhaites donc les partager, qu'elles soient utilisables par plusieurs bases), procéde comme indiqué plus haut.

Si elles sont différentes (par le nombre de champs, le format de ces derniers etc. ...) alors ce n'est plus un probléme de liaison (de partage, mais plutot de récapitulation de certaines données).

Pour ce qui est mettre à jour 2 tables différentes d'une même base (ou de bases différentes): Mes bases contiennent cette table que je suis obligé de mettre à jour individuellement, dès qu'il y a une modification. Entrée sortie, junior devenant sénior etc.

Dans mes bases, j'ai entre sept et huit tables en relation entre elles, de un à plusieurs pour la table objet de notre conversation, avec intégrité référentielle. Tout ce petit monde fonctionne parfaitement à l'intérieur de chaque base. (je ne parle pas des requêtes, des formulaires et des états)

il faut faire une fusion des tables indépendantes (et différentes) dans une nouvelle "table". Il faut obligatoirement quelles aient des champs identiques pour la fusion (donc d'abord une requête sur chaque table pour extraire les champs à fusionner, ensuite fusion des requêtes, à chaque ouverture, la requête fusionnée se met à jour. Il faut que le format des champs soit identique).

Si tu es fatigué, tu peux te reposer, merci encore.

A+

D D Du 06


Publicité
Ditou
 Posté le 21/04/2008 à 18:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir D-D 06,

Je viens de tenter, dans une de mes bases existantes (celle que je voudrais définir comme principale) la création d'une table toute simple, sans aucune relation dans la base, et avec deux colonnes.

J'ai "exporté" cette table dans une autre des bases. J'ai ensuite "lié les tables" sans aucun résultat.

J'ai beau modifier une donnée dans l'une ou l'autre, aucune mise à jour ne se fait dans la table liée, malgré l'apparition de la nouvelle table liée avec sa flêche, dans la liste des tables.

J'ai beau lire et relire les explications de mon ouvrage de IDG books First interactive de 680 pages : Nada, Nada, et re-Nada.

Je vais essayer une dernière création de deux bases minimalistes pour voir si j'arrive à un résultat, auquel cas, ce serait la structure de mes bases qui serait incompatible avec cette commande...

A la prochaine, si ta patience est grande !

D-D-Du-06
 Posté le 21/04/2008 à 19:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Ditou a écrit :

Bonsoir D-D 06,

Je viens de tenter, dans une de mes bases existantes (celle que je voudrais définir comme principale) la création d'une table toute simple, sans aucune relation dans la base, et avec deux colonnes.

J'ai "exporté" cette table dans une autre des bases. J'ai ensuite "lié les tables" sans aucun résultat.

A ce niveau là, il ne faut pas "exporter" la table. Tu fermes cette base

Tu ouvres l'autre (celle d'accueil).

Et là tu importes ta table (ALT, puis d puis l (>> Fichier, >> Données externes, >> lier une table))

Tu procédes ainsi pour toutes tes bases.

Tu auras ta table de départ dans toutes les bases et modifiable à partir de chaque base (avec mise à jour automatique).

Ensuite tu peux relier cette table aux autres tables de tes bases.

En résumé: 1 base de départ, 1 table (et 1 seule à faire pour toutes)

des bases dans lesquelles tu importes cette table

J'ai beau modifier une donnée dans l'une ou l'autre, aucune mise à jour ne se fait dans la table liée, malgré l'apparition de la nouvelle table liée avec sa flêche, dans la liste des tables.

J'ai beau lire et relire les explications de mon ouvrage de IDG books First interactive de 680 pages : Nada, Nada, et re-Nada.

Je vais essayer une dernière création de deux bases minimalistes pour voir si j'arrive à un résultat, auquel cas, ce serait la structure de mes bases qui serait incompatible avec cette commande...

A la prochaine, si ta patience est grande !

Voilà... en espèrant que cela avance...

A+

D D Du 06



Modifié par D-D-Du-06 le 21/04/2008 20:00
Ditou
 Posté le 21/04/2008 à 22:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Félicitations D-D 06,

Ton explication brillante m'a fait comprendre le mécanisme, et dans trois bases test tout est OK, les tables réagissent correctement !

Un petit (gros) bémol avec ma colonne Oui/Non qui indique la participation. Il faudrait que je puisse la soustraire à la mise à jour, car les participations sont différentes d'une base à l'autre. Est-ce possible ? Si Oui : comment ? Si Non, c'est la conception de la base et des tables qui est à revoir, et c'est une autre histoire.

En attendant ton dernier verdict, bonne soirée de Ditou 31.

D-D-Du-06
 Posté le 21/04/2008 à 23:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re Bonjour,

ça avance (un peu)... un vari marathon... .

Il ne m'est pas facile de répondre à ta question n'ayant pas une vision et globale et précise de ce que tu veux mettre en place (des courses, avec des participants, avec des niveaux etc...).

Si la table est partagée, elle est modifiable partout: à quoi sert (pour toi) la colonne oui/non et surtout quel problème pose-t-elle ?

Cette table partagée, en quoi est-elle complétée par les autres tables des autres bases etc...

Par exemple (modèle de structure logique):

la table partagée = tous les licenciés (avec nom, adresse, age, etc...);

les tables particulières présentes dans les autres bases correspondants à des courses (1 base = junior avec 1 table des courses de la catégorie, 1 autre senior avec 1 table des courses de la catégorie etc...) ;

Il n'est pas difficile alors de les mettres en relations (filtre de la table des participants dans chaque base par catégorie, pour ensuite indiquer les participants à chaque course etc...)

Il me semble bien que ton principal problème est dans la conception globale au départ...

Voilà, en espérant que l'arrivée approche...

A+

D D Du 06

Ditou
 Posté le 22/04/2008 à 05:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour D-D 06,

Je craignais que la conception soit en cause. Tu viens de m'en faire la démonstration "Logique". Ma case O/N, inclue dans toutes mes requêtes, m'empêche d'utiliser cette faculté de mise à jour simultanée de la table commune. J'en prends note pour une prochaine création.

Dans le présent, je reste avec mon système plombé. Je vais continuer à faire mes mises à jour par remplacement manuel de la table dans chaque base. La fréquence des màj est entre deux et trois fois l'an, rien de fastidieux.

Je te remercie donc pour ce que tu m'as appris, toute ton attention sans faille et en français (cerise sur le gâteau...de nos jours) et à la prochaine sur le Web.

Cordialement du 31.



Modifié par Ditou le 22/04/2008 21:24
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
reinitialiser clé primaire dans une base de données LIBRE OFFICE
Formulaires dans base de données
Recherche de Valeurs dans une base de données
Erreur java dans base de données libreoffice
base de données dans EXCEL
Problème de suppression de données VBA dans base
Access 2007, champs plusieurs table dans form.
Récup de données dans plusieurs fichiers excel
copier les donnees d'une requete dans une table
trouver des valeurs cible dans une base de donnees
Plus de sujets relatifs à Liaison d''une table dans plusieurs base de données
 > Tous les forums > Forum Bureautique