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

Comment "éclater" une base en 4 sous-bases ?

2 réponses
Avatar
dec29
Bonjour,

Mon problème est le suivant :

Je dispose d'une grosse base de données bretagne.mdb, et je désire
transmettre à chacun des responsables départementaux de l'académie les
données qui le concernent (ex : finistere.mdb....).

Les tables ont même nom et même structure des deux côtés, mais les bases
départementales ont leur spécificité (requêtes, états ...).

Dans chaque table de la base académique, il existe un champ "Code_RNE" dont
les 3 premiers caractères représentent le département (ex : 0291234U)

Dans chaque base départementale, il y a une table de variables globales
VARGLOB comportant un champ "Code_dep" (ex : 029 pour le Finistère).

J'aimerais créer une procédure, dans la base académique, qui demande le
chemin de la base départementale, en lise le code département (ou le demande
en saisie), extraie les enregistrements voulus (ici, ceux dont le code_RNE
commence par 029), et les copie dans la table correspondante de la base
départementale.

Aussi bien, cette procédure peut être dans les bases départementales, après
tout...

Requêtes SQL???? Macros lançant des requêtes ajout filtrées sur le code
département ??? Dans un cas comme dans l'autre, je suis paumé, et je
remercie vivement celles et ceux qui me mettront sur la piste.

2 réponses

Avatar
Jac
Salut DDEC,

j'entrevois deux solutions à ton problème :

1 - tu fais autant de requêtes que de département en prenant tous les champs
désirés (et les tables désirées) et en mettant dans chacune le critère qui
n'affichera que les données voulues. Ex: dans Code_RNE tu mets comme "029*"
pour n'afficher que le département 29. Ensuite tu transformes les requêtes
en requêtes création de table pour obtenir à chaque lancement d'une requête
un remplacement / mise à jour de la table concernée, donc du département
correspondant.

2 - tu crées un mdb par département dans lequel tu places la table concernée
puis tu attaches chaque département dans ton mdb d'origine. Pour que tu
puisses avoir accès à tous tes départements sous forme "empilées", tu fais
une requête union qui te permettras d'afficher les données globales. Donc
pour chaque destinataire, tu pourras lui envoyer les tables qui le
concernent, plus ce qu'on appelle un frontal (mdb avec tables attachées et
tous les outils d'exploitation tels que requêtes, états, ...). Et chaque
fois que tu fourniras une mise à jour, des données, tu n'auras qu'à envoyer
le mdb qui contient les tables. Si tu dois améliorer / modifier le frontal,
chaque fois que tu le renverras, l'utilisateur n'aura qu'à l'utiliser en
lieu et place de l'ancien. Et tu pourrais aussi imaginer plusieurs frontaux
qui correspondent à des besoins spécifiques (stats, rapports prévisionnels,
...) où à des utilisateurs spécifiques donc en fonction du frontal, on ne
verra que ce qui est prévu, et ceci pourrait s'apparenter, dans une certaine
mesure à de la sécurité basique de tipe "pas pris, pas vu"...

On en reparles quand tu veux.

Jac

"dec29" a écrit dans le message de news:
44991294$0$861$
Bonjour,

Mon problème est le suivant :

Je dispose d'une grosse base de données bretagne.mdb, et je désire
transmettre à chacun des responsables départementaux de l'académie les
données qui le concernent (ex : finistere.mdb....).

Les tables ont même nom et même structure des deux côtés, mais les bases
départementales ont leur spécificité (requêtes, états ...).

Dans chaque table de la base académique, il existe un champ "Code_RNE"
dont les 3 premiers caractères représentent le département (ex : 0291234U)

Dans chaque base départementale, il y a une table de variables globales
VARGLOB comportant un champ "Code_dep" (ex : 029 pour le Finistère).

J'aimerais créer une procédure, dans la base académique, qui demande le
chemin de la base départementale, en lise le code département (ou le
demande en saisie), extraie les enregistrements voulus (ici, ceux dont le
code_RNE commence par 029), et les copie dans la table correspondante de
la base départementale.

Aussi bien, cette procédure peut être dans les bases départementales,
après tout...

Requêtes SQL???? Macros lançant des requêtes ajout filtrées sur le code
département ??? Dans un cas comme dans l'autre, je suis paumé, et je
remercie vivement celles et ceux qui me mettront sur la piste.




Avatar
dec29
Je ne prends connaissance de ta réponse que ce matin, vendredi 23/06. Merci
d'avoir pris cette peine.

J'étais de mon côté arrivé à une solution plus ou moins satisfaisante :
Création d'une macro qui lance successivement autant de requêtes suppression
que de tables concernées, ces requêtes suppression éliminant les
enregistrements dont le code_rne ne commence pas par le code département de
VARGLOB. Cette macro est lancée depuis un formulaire qui demande dans une
zone de liste modifiable quel département on veut conserver. On travaille
évidemment sur autant de duplicats de la base académique qu'il y a de bases
départementales à générer.

Ca fait un peu tambouille, mais quand on ne connait pas VB....

J'étudierai tes suggestions néanmoins, car de la confrontation des
différences d'appréciation naissent la tolérance et la lumière

Hugh, j'ai dit.

Bon WE, et encore merci,

Yannick

"Jac" a écrit dans le message de news:
449aad10$0$10275$
Salut DDEC,

j'entrevois deux solutions à ton problème :

1 - tu fais autant de requêtes que de département en prenant tous les
champs désirés (et les tables désirées) et en mettant dans chacune le
critère qui n'affichera que les données voulues. Ex: dans Code_RNE tu mets
comme "029*" pour n'afficher que le département 29. Ensuite tu transformes
les requêtes en requêtes création de table pour obtenir à chaque lancement
d'une requête un remplacement / mise à jour de la table concernée, donc du
département correspondant.

2 - tu crées un mdb par département dans lequel tu places la table
concernée puis tu attaches chaque département dans ton mdb d'origine. Pour
que tu puisses avoir accès à tous tes départements sous forme "empilées",
tu fais une requête union qui te permettras d'afficher les données
globales. Donc pour chaque destinataire, tu pourras lui envoyer les tables
qui le concernent, plus ce qu'on appelle un frontal (mdb avec tables
attachées et tous les outils d'exploitation tels que requêtes, états,
...). Et chaque fois que tu fourniras une mise à jour, des données, tu
n'auras qu'à envoyer le mdb qui contient les tables. Si tu dois améliorer
/ modifier le frontal, chaque fois que tu le renverras, l'utilisateur
n'aura qu'à l'utiliser en lieu et place de l'ancien. Et tu pourrais aussi
imaginer plusieurs frontaux qui correspondent à des besoins spécifiques
(stats, rapports prévisionnels, ...) où à des utilisateurs spécifiques
donc en fonction du frontal, on ne verra que ce qui est prévu, et ceci
pourrait s'apparenter, dans une certaine mesure à de la sécurité basique
de tipe "pas pris, pas vu"...

On en reparles quand tu veux.

Jac

"dec29" a écrit dans le message de news:
44991294$0$861$
Bonjour,

Mon problème est le suivant :

Je dispose d'une grosse base de données bretagne.mdb, et je désire
transmettre à chacun des responsables départementaux de l'académie les
données qui le concernent (ex : finistere.mdb....).

Les tables ont même nom et même structure des deux côtés, mais les bases
départementales ont leur spécificité (requêtes, états ...).

Dans chaque table de la base académique, il existe un champ "Code_RNE"
dont les 3 premiers caractères représentent le département (ex :
0291234U)

Dans chaque base départementale, il y a une table de variables globales
VARGLOB comportant un champ "Code_dep" (ex : 029 pour le Finistère).

J'aimerais créer une procédure, dans la base académique, qui demande le
chemin de la base départementale, en lise le code département (ou le
demande en saisie), extraie les enregistrements voulus (ici, ceux dont le
code_RNE commence par 029), et les copie dans la table correspondante de
la base départementale.

Aussi bien, cette procédure peut être dans les bases départementales,
après tout...

Requêtes SQL???? Macros lançant des requêtes ajout filtrées sur le code
département ??? Dans un cas comme dans l'autre, je suis paumé, et je
remercie vivement celles et ceux qui me mettront sur la piste.