Hallo Alfred,
Post by Alfred NitzschkeHallo und Danke an alle.
Es ist für mich nicht kriegsentscheidend, die DB während der Laufzeit zu
komprimieren.
Falls aber doch noch jemand eine Lösung findet, wird Donkarl sie sicher in
6.6 hinzufügen... - wenn der "Finder" es meldet.
Ciao
Alfred
Ich wollte das einmal für meine eigene DB (A03) realisieren und habe es nur
über eine weitere DB geschafft:
**** Neue DB erstellen und vorgefertigtes Formular zum Komprimieren der DB
transferieren ***
Dim NewDatabase As Database
Dim prop As Property
Dim Compactor As String
Compactor = Left(CurrentDb.Name, Len(CurrentDb.Name) - 4) & "Compactor.mdb"
Set NewDatabase = DBEngine.Workspaces(0).CreateDatabase(Compactor,
dbLangGeneral)
DoCmd.CopyObject Compactor, , acForm, "frmCompactDB"
Set prop = NewDatabase.CreateProperty("StartupForm", dbText, "frmCompactDB")
NewDatabase.Properties.Append prop
**** Datenbankpfad wird in die neue DB übertragen ***
Dim NewTable As TableDef
Dim Field1 As Field
Dim Entity As Recordset
Set NewTable = NewDatabase.CreateTableDef("tblTab1")
Set Field1 = NewTable.CreateField("Datenbankpfad", dbText, 255)
NewTable.Fields.Append Field1
NewDatabase.TableDefs.Append NewTableSet Entity =
NewDatabase.OpenRecordset("tblTab1")
Entity.AddNew
Entity.Fields("Datenbankpfad").Value = CurrentDb.Name
Entity.Update
NewDatabase.Close
**** Aufruf der neuen DB ***
Dim AccessApplication As Object
Set AccessApplication = CreateObject("Access.Application")
AccessApplication.OpenCurrentDatabase (Compactor)
DoCmd.Quit acQuitSaveAll
**** Über Timer im aufgerufenen Formular ***
Dim sDatabase As String
Dim sDummyDB As Variant
Dim db As DAO.Database
sDatabase = DLookup("Datenbankpfad", "tblTab1")
sDummyDB = CurrentProject.Path & "\Dummy.mdb"
DBEngine.CompactDatabase sDatabase, sDummyDB
Kill DLookup("Datenbankpfad", "tblTab1")
Name sDummyDB As DLookup("Datenbankpfad", "tblTab1")