Compileer en herstel...

Status
Niet open voor verdere reacties.

Crizke

Gebruiker
Lid geworden
11 feb 2013
Berichten
51
Hoi hoi,

Ik had een klein vraagje.

Ik ben bezig aan een Db. Maar deze is echter heel groot. (1,5Gb)
Ik doe een "Vernieuw"-functie (Macro) bij het opstarten, zodat de gegevens in de tabellen vernieuwd worden. Maar aangezien bij het starten deze database al zo groot is, blokkeert deze functie op het moment hij over de 2Gb gaat...

Nu was mijn vraag =>

In de functie wis ik eerst alle bestaande tabellen en maak ik deze erna opnieuw aan.
Kan ik in deze functie na het wissen een commando zetten (of een andere functie oproepen) die de Db compileert en dan verder gaat met de tabellen aan te maken? Zo kom ik niet over de 2Gb...

Ik werk in Access 2003.

Bedankt...
 
Access database van 1.5 Gb? Mazzel dat het sowieso allemaal nog opstart... Maar goed, je zou bijvoorbeeld een aantal tabellen naar een andere .mdb file kunnen zetten om zo de database te splitsen in meerdere fysieke bestanden. Je linkt vervolgens naar de tabellen in de nieuwe/extra .mdb file. Er zit in 2003 ook een Wizard om front/en back-end te splitsen, dat is hetzelfde idee.
 
Access 'stapelt' de gegevens die je in je tabellen opslaat, en alle mutaties ook. Daarom groeit de db ook zo snel, want elke keer als je de tabellen verwijdert en nieuwe importeert, blijven de oude er gewoon instaan. Alleen zie je ze niet meer. Alleen met Comprimeren kun je de verwijderde gegevens echt verwijderen, en krijgt de db weer zijn normale grootte. Tabellen wissen en opnieuw aanmaken moet je dus proberen te vermijden, want dat is niet bevorderlijk voor de omvang. Of zet de optie <Compileren bij afsluiten> aan, dan gebeurt dat automatisch als de db wordt afgesloten, en heb je er geen omkijken meer naar.
 
@Octafish: ik heb een tijdelijke oplossing gevonden.

Ik neem voor 1 tabel informatie uit 3 andere tabellen. Maar deze worden nadien overbodig.
Dus ik vernieuw eerst mijn tabellen. dan maak ik de nieuwe tabellen en verwijder tenslotte die andere tabellen.
Elke keer ik die functie doe verwijdert hij alle tabellen en maakt ze dus opnieuw aan (en delete dan die overbodige).
Comprimeren bij afsluiten staat aan...

Ik vroeg me gwn af of het mogelijk was om in ergens in het midden van een functie iets te zetten wat zegt dat de DB moet comprimeren en dan verder gaat ...

VB: if .... end if
if ... end if
COMPRIMEER
if ... end if ...
 
Bij comprimeren en herstellen wordt de db afgesloten. En dus ook je code. Dus nee. Ik snap nog steeds de noodzaak van die nieuwe tabel niet; volgens mij kun je net zo goed een query maken van die drie tabellen. Heb je het concept wel goed voorbereid/doorgedacht? Ik heb mijn twijfels...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan