Avatar billede martin_schou Nybegynder
06. november 2001 - 11:52 Der er 22 kommentarer og
1 løsning

Komprimering af Access-database vha SQL

Det er nemt nok at åbne Access og trykke på \"Komprimer og Reparer\" - men kan man gøre det udefra ved at kalde en \"forespørgsel\"/\"stored procedure\"?

Hvis ja - hvordan skal den forespørgsel så se ud. Hvis der skal bruges VBA til det, så smid det ved svaret.

Skal der bruges sort magi, så vedlæg en præcis \"opskrift\", så jeg kan afprøve den.
Avatar billede bennytordrup Nybegynder
06. november 2001 - 12:25 #1
Du skal bruge kode til det. På DBEngine er der en metode, som hedder CompactDatabase. Parametrene (krævede) er eksisterende database og ny database.
Avatar billede martin_schou Nybegynder
06. november 2001 - 12:31 #2
Kan du smide et eksempel på koden? Jeg er ikke nogen ørn (ikke engang en gråspuv) til Access.
Avatar billede bennytordrup Nybegynder
06. november 2001 - 12:44 #3
Databasen må ikke være åben.

DBEngine.CompactDatabase c:\\OldDB.Mbd, c:\\CompressedDB.mdb
Avatar billede martin_schou Nybegynder
06. november 2001 - 12:55 #4
SKAL den have et komplet sti?

Endvidere kan jeg ikke finde nogen \"DBEngine\"-funktion i Access\' indbyggede funktioner. Hür fa\'en skal man få det til at virke?

Grundig guide tak :-)
Avatar billede bennytordrup Nybegynder
06. november 2001 - 12:56 #5
Den skal have komplet sti.

Har du en reference til DAO? (Project, References)
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:01 #6
Ingen anelse - hvad er DAO?
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:06 #7
Data Access Objects.

Hvis du ser i referencerne, så skal du have hak i en, som hedder Microsoft Data Access Objects 3.5x eller 3.6
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:09 #8
Jeg har dem tilsyneladende (der står ingen MISSING foran dem) - men de er ikke aktiveret i databasens nuværende udformning.
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:10 #9
Arbejder du i Access eller Visual Basic?
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:15 #10
Lidt i Access. Arbejder på at få flyttet det meste af arbejdet væk fra Access, og lige nu er problemet at få komprimeret databasen.
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:16 #11
Du kan ikke bruge dem, hvis du ikke har markering ud for dem i referencelisten. Og du skal bruge dem for at få fat i DBEngine fra Visual Basic.
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:24 #12
Nu er de markeret - Access vil stadig ikke acceptere

DBEngine.CompactDatabase c:\\OldDB.Mbd, c:\\CompressedDB.mdb
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:25 #13
Findes c:\\OldDB.mdb?
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:26 #14
Findes c:\\CompressedBD.mdb (må den ikke)
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:26 #15
fejl 40

prøver lige igen ... duh!
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:32 #16
Jeg prøver at gøre det på den forkerte måde - jeg prøver at oprette en forespørgsel.

Når jeg indtaster følgende i formularen \"guide\" (eller hvad den hedder):

DBEngine.CompactDatabase C:\\Progra~1\\GHEM\\Energy\\Database\\Energy.mdb, C:\\Progra~1\\GHEM\\Energy\\Database\\Energy2.mdb

\"Det indtastede udtryk indeholder en ugyldig syntaks

Du har måske indtastet et semikolon uden en foranstående værdi eller et foranstående id-navn.\"

Skal det indstastes et bestemt sted?
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:34 #17
Ja. Det skal gøres i Visual Basic. Du prøver at gøre det i forespørgselsdesigneren.
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:40 #18
Tillad mig at gentage min kommentar fra tidligere:

Grundig guide tak.
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:46 #19
Du er nødt til at lave et Visual Basic projekt til det. Standard EXE. Du skal have reference til Microsoft Data Access Objects 3.5x eller 3.6

i Form1_Load skriver du din linie fra før (evt. med Programmer eller Program Files i stedet for Progra~1)

DBEngine.CompactDatabase C:\\Progra~1\\GHEM\\Energy\\Database\\Energy.mdb, C:\\Progra~1\\GHEM\\Energy\\Database\\Energy2.mdb

Kør programmet
Avatar billede martin_schou Nybegynder
06. november 2001 - 13:50 #20
Det vil sige, at hvis der ikke er tale om et VB-program, men f.eks. et pearl-script, så kan det ikke lade sig gøre at komprimere databasen udefra?
Avatar billede bennytordrup Nybegynder
06. november 2001 - 13:51 #21
Det kan lade sig gøre i de script-sprog, som håndterer COM objekter.
13. november 2001 - 08:59 #22
Ikke for at blande mig, men hvad er der i vejen med at åbne databasen med kommandolinieargumentet \"Compact\" således:

C:\\Programmer\\Office\\MSAccess.exe C:\\Dokumenter\\MinDatabase.mdb /compact C:\\Dokumenter\\NyDatabase.mdb

Dette er altså blot en genvej/shortcut man kan kalde for at komprimere databasen.

Det sidste argument (C:\\Dokumenter\\NyDatabase.mdb) kan udelades for at komprimere i den samme fil.

/Thomas
www.makeiteasy.dk
Avatar billede bennytordrup Nybegynder
13. november 2001 - 09:01 #23
Hvis Access ikke er installeret på run time maskinen, så er dette \"not an option\"
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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