Hallo Sven,
Nee, das ist nicht die Lösung. TZrotzdem danke.
Natürlich ist die DB, zumindest was Access.exe betrifft, nicht
offen.
Mit der Syntax DBEngine.CompactDatabase (AlteDb-Path,
NeueDb-Path)
funktioniert fabelhaft, nur geht dann immer ein Fenster zur
Kennworteingabe auf. Gibt man das richtige ein funktionierts.
In meinen Unterlagen steht:
Kopiert und komprimiert eine geschlossene Datenbank und gibt Ihnen die Möglichkeit, die Version, die Sortierreihenfolgen und Verschlüsselung zu ändern. (Nur in Microsoft Jet-Arbeitsbereichen)
Syntax
DBEngine.CompactDatabase AlteDb, NeueDb, Gebietsschema, Optionen, Kennwort
Die Syntax der CompactDatabase-Methode besteht aus folgenden Teilen.
Teil Beschreibung
AlteDb Ein String, der den Namen einer existierenden geschlossenen Datenbank angibt. Der Ausdruck kann den vollständigen Pfad- und Dateinamen enthalten, z.B. „C:\Db1.mdb“. Wenn der Dateiname eine Erweiterung hat, müssen Sie diesen angeben. Sie können auch einen Netzwerkpfad angeben, z.B. „\Server1\Freigabe1\Verz1\Db1.mdb“.
NeueDb Ein String, der den vollständigen Dateinamen (und Pfad) der komprimierten Datenbank angibt, die erstellt werden soll. Sie können auch einen Netzwerkpfad angeben. Sie können mit dem Argument NeueDb nicht dieselbe Datenbankdatei angeben wie mit dem Argument AlteDb.
Gebietsschema Optional. Ein Variant, der ein Zeichenfolgenausdruck ist, der die Sortierreihenfolge zum Erstellen von NeueDb angibt, wie unter Einstellungen beschrieben. Wenn Sie dieses Argument nicht angeben, entspricht das Gebietsschema von NeueDb dem von AlteDb.
Sie können für NeueDb auch ein Kennwort erstellen, indem Sie die Kennwortzeichenfolge mit einer Konstanten des Arguments Gebietsschema verketten (beginnend mit „;pwd=“), beispielsweise so:
dbLangSpanish & „;pwd=NewPassword“
Wenn Sie dasselbe Gebietsschema als auch dieselbe AlteDb (der Standardwert) verwenden möchten, aber ein neues Kennwort angeben, geben Sie einfach eine Kennwortzeichenfolge für Gebietsschema an:
„;pwd=NewPassword“
Optionen Optional. Eine Konstante oder eine Kombination aus Konstanten, die eine oder mehrere Optionen angibt, wie unter Einstellungen beschrieben. Sie können die Optionen kombinieren, indem Sie die entsprechenden Konstanten aufsummieren.
Kennwort Optional. Ein Variant(ein Zeichenfolgenausdruck) mit einem Kennwort, falls die Datenbank kennwortgeschützt ist. Die Zeichenfolge
“;pwd=“";pwd=" muß dem tatsächlichen Kennwort vorangestellt werden. Wenn Sie in Gebietsschema eine Kennworteinstellung einschließen, wird diese Einstellung ignoriert.
Einstellungen
Sie können die folgenden Konstanten für das Argument Gebietsschema verwenden, um die mit der CollatingOrder-Eigenschaft festgelegte Sortierreihenfolge für Zeichenfolgenvergleiche von Text anzugeben:
Konstante Sortierreihenfolge
dbLangGeneral Englisch, Deutsch, Französisch, Portugiesisch, Italienisch und Spanisch (Modern)
dbLangArabic Arabisch
dbLangChineseSimplified Vereinfachtes Chinesisch
dbLangChineseTraditional Traditionelles Chinesisch
dbLangCyrillic Russisch
dbLangCzech Tschechisch
dbLangDutch Holländisch
dbLangGreek Griechisch
dbLangHebrew Hebräisch
dbLangHungarian Ungarisch
dbLangIcelandic Isländisch
dbLangJapanese Japanisch
dbLangKorean Koreanisch
dbLangNordic Skandinavische Sprachen (Nur Microsoft Jet Datenbankmodul, Version 1.0)
dbLangNorwDan Norwegisch und Dänisch
dbLangPolish Polnisch
dbLangSlovenian Slowenisch
dbLangSpanish Traditionelles Spanisch
dbLangSwedFin Schwedisch und Finnisch
dbLangThai Thailändisch
dbLangTurkish Türkisch
Sie können eine der folgenden Konstanten im Argument Optionen verwenden, um anzugeben, ob die Datenbank beim Komprimieren verschlüsselt oder entschlüsselt werden soll.
Konstante Beschreibung
dbEncrypt Datenbank wird beim Komprimieren verschlüsselt.
DbDecrypt Datenbank wird beim Komprimieren entschlüsselt.
Wenn Sie keine Verschlüsselungskonstante oder die Konstanten dbDecrypt und dbEncrypt gleichzeitig angeben, hat NeueDb denselben Verschlüsselungszustand wie AlteDb.
Mit einer der folgenden Konstanten im Argument Optionen können Sie die Version des Datenformats für die komprimierte Datenbank angeben. Diese Konstante betrifft nur die Version des Datenformats für NeueDb und hat keine Auswirkung auf die Version von Objekten, die durch Microsoft Access definiert wurden (wie Formulare und Berichte).
Konstante Beschreibung
dbVersion10 Erstellt eine Datenbank, die beim Komprimieren das Dateiformat aus dem Microsoft Jet-Datenbankmodul, Version 1.0, verwendet.
DbVersion11 Erstellt eine Datenbank, die beim Komprimieren das Dateiformat aus dem Microsoft Jet-Datenbankmodul, Version 1.1, verwendet.
DbVersion20 Erstellt eine Datenbank, die beim Komprimieren das Dateiformat aus dem Microsoft Jet-Datenbankmodul, Version 2.0, verwendet.
DbVersion30 Erstellt eine Datenbank, die beim Komprimieren das Dateiformat aus dem Microsoft Jet-Datenbankmodul, Version 3.0 (kompatibel mit Version 3.5), verwendet.
Sie können nur eine Versionskonstante angeben. Wenn Sie keine Versionskonstante angeben, hat NeueDb dieselbe Version wie AlteDb. Sie können in der komprimierten Datenbank (NeueDb) nur eine Version festlegen, die der Version von AlteDb entspricht oder aktueller ist.
Bemerkungen
Mit fortschreitenden Änderungen an den Daten in einer Datenbank kann die Datenbankdatei fragmentiert werden und mehr Festplattenspeicher benötigen als notwendig ist. Sie können die Datenbank regelmäßig mit der CompactDatabase-Methode komprimieren, um die Datenbankdatei zu defragmentieren. Die komprimierte Datenbank ist in der Regel kleiner und kann oft schneller ausgeführt werden. Sie können außerdem die Sortierreihenfolge, die Verschlüsselung und die Version des Datenformats ändern, während Sie die Datenbank kopieren und komprimieren.
Sie müssen AlteDb vor der Komprimierung schließen. In einer Mehrbenutzerumgebung können andere Benutzer AlteDb nicht geöffnet haben, während Sie die Datenbank komprimieren. Wenn AlteDb nicht geschlossen ist oder nicht für exklusiven Zugriff zur Verfügung steht, tritt ein Fehler auf.
Da CompactDatabase eine Kopie der Datenbank erstellt, müssen Sie genügend Festplattenspeicher für das Original und die Kopie der Datenbank haben. Die Komprimierung kann nicht erfolgen, wenn nicht genügend Speicher zur Verfügung steht. Die Datenbankkopie NeueDb muß nicht auf der Festplatte erstellt werden, auf der sich AlteDb befindet. Nach dem erfolgreichen Komprimieren einer Datenbank können Sie die Datei für AlteDb löschen und den Dateinamen für die komprimierte NeueDb in den Namen der ursprünglichen Datei umbenennen.
Die CompactDatabase-Methode kopiert alle Daten und die Sicherheitseinstellungen für die Berechtigungen aus der durch AlteDb angegebenen Datenbank in die durch NeueDb angegebene Datenbank.
Wenn Sie mit CompactDatabase eine Datenbank der Version 1.x auf die Version 2.5 oder 3.x konvertieren, kann die konvertierte Datenbank nur noch mit Anwendungen geöffnet werden, die Microsoft Jet, Version 2.5 oder 3.x, verwenden.
Anmerkung In einem ODBCDirect-Arbeitsbereich gibt die CompactDatabase-Methode keinen Fehler zurück, sondern lädt statt dessen das Microsoft Jet-Datenbankmodul in den Speicher.
Achtung Da die CompactDatabase-Methode keine Microsoft Access-Objekte konvertiert, sollte CompactDatabase nicht zum Konvertieren einer Datenbank mit solchen Objekten verwendet werden. Sie können eine Datenbank mit Microsoft Access-Objekten konvertieren, indem Sie in Microsoft Access im Menü Extras auf Datenbank-Dienstprogramme zeigen und dann auf Datenbank konvertieren klicken.
Eigentlich sollte dir F1, die selbe Antwort geben.
MfG Peter(TOO)