2

データベースが破損しています。MS Access で開くと、MS Access が修復を提案し、成功します。

コードでそれを行うにはどうすればよいですか?MS Access がインストールされていないマシン。

試してみると、JRO.JetEngine.CompactDatabase が機能しないことがわかりました。

つまり、JRO.JetEngine.CompactDatabase が行っていることではなく、Access または JETCOMP.exe が行っていることを行いたいのです。

4

4 に答える 4

2

http://support.microsoft.comにアクセスして JetComp.exe ユーティリティを検索する必要があります。このユーティリティは、ファイルを開かずに MDB の修復と圧縮を試みます。上記の提案がどれも機能しない理由は、作業を行うために MDB を開く必要があるためです。一方、JetComp はファイルを開かず、構造的に操作します。

ファイルを回復できない場合 (実際に発生します)、データ回復サービスに行く必要があります。PKSolutions.com の Peter Miller をお勧めします。

于 2008-09-27T22:57:25.263 に答える
1

.mdb ファイルを開くためのコマンド ライン スイッチ:

/compact

データベース ファイルを修復して圧縮します。

/compact スイッチの後にターゲット ファイル名を指定しない場合、ファイルは元の名前とフォルダーに圧縮されます。別の名前に圧縮するには、ターゲット ファイルを指定します。

于 2008-09-26T20:43:47.277 に答える
1

DBEngine.RepairDatabase [my.mdb] を試しましたか? (以前のバージョンを参照しても動作しないようです)

ただし、コーディングが必要なほど頻繁に発生している場合は、最初に解決すべきより大きな問題がある可能性があります。

別のユーティリティを使用する場合は、Jetcomp.exe ユーティリティ ( http://support.microsoft.com/kb/295334 ) はいかがですか。「Microsoft Access コンパクト ユーティリティと CompactDatabase メソッドでは復元できないデータベースを復元できる」はずです。その場合は、外部アプリケーションを実行するだけです。

例えば、

Call Shell("Jetcomp.exe <arguments>")
于 2008-09-26T20:48:00.667 に答える
0

私は MS Access の専門家ではありませんが、このユーティリティには、破損したデータベース ファイルを圧縮して修復するために必要な DLL が含まれているようです。

于 2008-09-26T20:40:47.597 に答える