meerdere databases samevoegen

Status
Niet open voor verdere reacties.

ronnie25

Nieuwe gebruiker
Lid geworden
24 jul 2009
Berichten
2
Goedemorgen,

Ik heb heel veel databases (500+) met dezelfde naamgevingen die ik (geautomatiseerd, vanwege 500+ ;)) wil samenvoegen tot 1 grote "moederdatabase". Om e.e.a duidelijk te maken, de verkennerstructuur ziet er als volgt uit

Klant1/DVD1/001.mdb
Klant1/DVD1/002.mdb
Klant1/DVD1/enz.

Klant1/DVD2/001.mdb
Klant1/DVD2/002.mdb
Klant1/DVD2/enz.

De tabellen van de databases zijn verder identiek opgemaakt.

Hebben jullie een oplossing? De oplossing mag ook in SQL gemaakt worden als dit makkelijker is.

Alvast heel erg bedankt voor het meedenken!
 
Laatst bewerkt:
Databases samenvoegen

Als die tezamen kleiner zijn en blijven dan 2TB dan kan dat anders dus niet. Mocht het groter zijn dan 2TB dan moet je de database splitsen in een FE & BE en vervolgens de BE in MySQL zetten.

Je kunt de tabellen (mits die nie dubbel voorkomen zonder meer importeren vanuit je moeder database.
 
Ik neem aan dat je een procedure zoekt om alles geautomatiseerd binnen te halen? Persoonlijk zou ik wel wat leukers kunnen verzinnen dan 500 databases en tabellen te importeren...
Je hebt wel de naam van de databases aangegeven, maar hoe zit het met de naam van de te importeren tabelln?

Michel
 
Ik zoek inderdaad een geautomatiseerde manier (kan me inderdaad wel wat leukers voorstellen, haha). Heb het bericht aangepast. Verder je vraag hoe de tabel is opgebouwd. Deze heeft altijd dezelfde naam (data) en in de tabellen staan de kolommen ID, Pad, volgnummer en datum
 
Dan kun je denk ik wel een procedure maken die met behulp van de functie Dir door een directory loopt, daar door alle databases heenloopt, en de tabellen inleest in je verzameldatabase. Met een Do Until en een teller kun je de namen van de databases, en mappen wel automatisch verhogen, zodat je steeds door een nieuwe klantenmap/database heenloopt.

Elke tabel moet dan apart worden geïmporteeerd, en daar zou ik dan één tabel voor gebruiken, tImport bijvoorbeeld.
Vervolgens laat je, in dezelfde loop, als de tabel is ingelezen, met een toevoegquery de data uit tImport toevoegen aan je hoofdtabel, waarna de loop naar de volgende database / map kan gaan, om de volgende database in te lezen en toe te voegen.

Het Dir commando ziet er ongeveer zo uit:

MyPath = "c:\Klant1\DVD1\001\*.mdb" ' Pad vastleggen.
MyName = Dir(MyPath ' Eerste database ophalen.

Do While MyName <> "" ' Start the loop.
DoCmd.TransferDatabase acImport, "Microsoft Access", "Klant1\DVD1\" & MyName & ".mdb ", acTable, "Tabel", "tImport"
DoCmd.OpenQuery "qImport"
MyName = Dir ' Get next entry.
Loop

En dat loopje breid je uiteraard nog wat uit, omdat je een paar stappen eerder moet beginnen.

Als je de Help van Dir opzoekt, vind je ook een manier om Mappen uit te lezen, en die heb je ook nodig.

Als je er niet uitkomt: je weet de weg!

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan