Compactrepair bei passwortgeschützter DB

Hallo,
in meiner Anwendung ist es nötig eine Komprimier und Rearierfunktion einzubauen, da sich die DB sehr stark aufblähen.

nutze ich die Syntax
locobjDBA.Application.compactrepair(database, dbpfad2)
funktioniert es, ich muß allerdings das PW von Hand eingeben.

Nutze ich
locobjDBA.Application.compactrepair(„Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database;Jet OLEDB:smiley:atabase Password=test“, " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dbpfad2;Jet OLEDB:smiley:atabase Password=test")
bekomme ich die Nachricht, dass die DB nicht existiert oder exclusiv geöffnet sei.

Wie kann ich die Funktion compactrepair ausführen und das PW übergeben?

Hallo Sven,
die Nachricht „Exklusiv geöffnet“ bekomme ich bei jeder Abfrage sobald
ich mich in der Entwurfsansicht einer Tabelle befinde …
Das wirst Du aber wissen und wohl nicht die Lösung sein, entschuldige bitte nicht Antwort …

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.

Ich gabe aber ungern Kennwörter raus :wink:. Werdet ihr verstehen.

Also wie übergebe ich mit der Syntax das Passwort???

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

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)

Danke für die Antwort,
geht das auch über ADO? Access ab Version XP bietet die Möglichkeit die DB auch gleich zu reparieren.

Ich meinte in meiner Anfrage auch die Syntax
DBEngine.Compactrepair (AlteDb-Path,NeueDb-Path) Sorry, mein Fehler.

Kennst du dich da auch aus? CompactDatabase wäre nur ne Notlösung.

Also Verzeihung und nochmal meine Frage
DBEngine.Compactrepair (AlteDb-Path,NeueDb-Path) funktioniert supi, nur muß ich das Passwort von Hand eingeben. Kann ich die irgentwie mit übergeben?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]