Avatar billede sigyn Seniormester
10. maj 2023 - 11:37 Der er 9 kommentarer

Kan man opdatere flere databaser på en gang ud fra en anden?

Jeg har en stribe databaser, DB1, DB2, DB3 osv. De behandler alle nogle data fra den samme "modertabel", og så er der lidt tilføjelser og tilretninger af forskellig art i de enkelte databaser. De enkelte databaser opdateres med en makro, tilknyttet en knap, når der er tilføjet noget manuelt, og tilsidst opdateres en tabel med de nye data.
Disse tabeller sammenkædes til en anden database, og samles igen med en UNION SELECT
Kan man fra denne database køre en makro, som kører alle opdateringsmakroerne i de enkelte databaser? Det vil være praktisk, når det kun er "modertabellen" som er opdateret
Avatar billede Gustav Ekspert
10. maj 2023 - 11:55 #1
Kender ikke meget til makroer, men du kan i det mindste oprette en funktion i en database, der kalder dine opdateringsmakroer i denne database.
Dernæst kan du åbne denne eksterne database fra din aktuelle database og kalde opdateringsfunktionen i den eksterne database.

Men det lyder som et noget besværligt setup, der nok kunne reduceres en hel del.
Avatar billede sigyn Seniormester
10. maj 2023 - 12:41 #2
Jeg ved godt, det lyder besværligt, men det er noget mere overskueligt, end at have det samlet i en database ud fra den måde data er bygget op på. Nu har jeg 10 små og overskuelige, næsten ens databaser, som hver især er nemme at opdatere. Ligeledes vil det være nemt at tilføje yderligere, hvis det skulle blive aktuelt.
Hvis jeg samlede dem i en database, ville jeg drukne i diverse forespørglser af både den ene og den anden slags, fordi jef først er nødt til at spitte modertabellen ad, og derefter samle den igen
Og opdateringen af de enkelte databaser er nem nok, men hvis det igen kun er modertabellen, som er opdateret ville det være lidt nemmere hvis jeg kunne gøre det fra samledatabasen
Avatar billede Gustav Ekspert
10. maj 2023 - 13:07 #3
Det forstår jeg ikke. En "modertabel" er vel en form for fælles tabel, og sådan en skal ikke "splittes op", men linkes til, hvis den ligger i en ekstern database.

Det lyder altså som om, du gør noget, der er forholdsvis enkelt, til noget meget besværligt.
Avatar billede sigyn Seniormester
10. maj 2023 - 13:25 #4
Det er lidt svært at forklare, men det er en SAP tabel som jeg trækker ud, og så skal vi have nogle priser og forskellige andre oplysninger på, og det er ikke helt ens med beregninger mm afhængigt af "leverandøren" derfor er hver af de små databaser til hver sin leverandør. Når beregninger og supplerende oplysninger er kommet på, fydes det i en ny tabel, som så er identisk i opbygningen i hver database, og så de igen kan samles.
Jeg kunne godt gøre det i en, men den ville være meget tungere at vedligeholde
Avatar billede Gustav Ekspert
10. maj 2023 - 13:54 #5
Det forklarer det udmærket.

Men så må det da være muligt at lægge den udtrukne tabel i en fælles database, og så lade dine små databaser linke til tabellen i den fælles database.
Så kan de hver for sig lave de opdateringer, der skal gøres, og når de alle har gjort det, er tabellen i den fælles database klar.

Hvis de bearbejdede data skal gemmen i en anden tabel end den udtrukne, oprettes blot en tom tabel i den fælles database, som de små databaser også linker til. Når alle opdateringerne er kørt og data lagt i den fælles output-tabel, er den klar uden at kopiere noget frem og tilbage og køre makroer rundt omkring.
Avatar billede sigyn Seniormester
11. maj 2023 - 10:58 #6
Den udtrukne tabel ligger pt i en excelfil, men den kunne godt ligge i den fælles database, men hvergang den bliver opdateret vil jeg også skulle opdatere de små databaser, da der ligger nogle slette-, tilføje- og opdateringsforespørgsler i hver af dem. Det er det jeg har samlet i en makro og tilknyttet en knap
Avatar billede Gustav Ekspert
11. maj 2023 - 11:43 #7
Udmærket.
Så start med at importere Excel-filen til en tabel i den fælles database.
Den kan du så dele som beskrevet ovenfor, og alle ændringer lavet i den af en af de små databaser vil da umiddelbart være tilgængelige for alle de andre små databaser uden at køre en eneste makro.
Avatar billede sigyn Seniormester
11. maj 2023 - 12:34 #8
Det ved jeg godt, men det er ikke kun den tabel, der sker ændringer i, der sker netop ændringer også i de manuelle indtastninger i de små databaser. De vil selvfølgelig blive lavet direkte i dem, men hvis det feks er en vigtig bemærkning, som skal tilføjes en post fra tabellen, så skal den tilføjes igen, hvis posten i tabellen har ændret sig, hvis du igen forstår hvad jeg prøver at forklare
Avatar billede Gustav Ekspert
11. maj 2023 - 14:23 #9
Så ville jeg lade den fælles tabel, hovedtabellen, være og blot opdatere den efter behov fra dit Excel-ark.
Lad dernæst de små databaser tilgå en anden fælles tabel, hvori bemærkningerne oprettes sammen med et ID til den post i den fælles tabel, den enkelte bemærkning vedrører.
Opret så én forespørgsel, der joiner den fælles hovedtabel med posterne fra bemærkningstabellen, når du skal generere det færdige udtræk.
På den måde vil alt være ajour uden videre, og makroer og opdateringer bliver overflødige.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester