Article View: pl.comp.bazy-danych.msaccess
Article #134066Naprawa bardzo uszkodzonej bazy danych
From: Phantom
Date: Mon, 25 Apr 2022 04:43
Date: Mon, 25 Apr 2022 04:43
77 lines
3137 bytes
3137 bytes
Witam Nie piszę której wersji dotyczy problem ponieważ zaraz wszystko się wyjaśni. Posiadam programik (plik vbs z kodm VB), który naprawia mi bardzo uszkodzone bazy danych (daje radę tam gdzie normalna naprawa i defragmentacja nie daje rady). Moim problemem jest to że ten programik działa z wersją MsAccess 97 i 2000 a potrzebowałbym żeby to było kompatybilne z wersją dla baz danych z rozszerzeniem .accdb. Programik na pewno przyda się wielu osobom z tego zacnego grona. Mi wielokrotnie uratował nie powiem co. Pozdrawiam i proszę o pomoc. Kod zapisany w pliku vbs poniżej: ' ***************** BEGIN CODE HERE ' ***************** ' Dim objScript Dim objAccess Dim strPathToMDB Dim strMsg ' ///////////// NOTE: Użytkownik musi edytować zmienne w tej sekcji ///// ' ' Poniższy wiersz kodu jest jedyną zmienną, którą należy edytować ' Musisz podać ścieżkę do Access MDB, która zostanie skompaktowana ' strPathToMDB = "D:\TKPD\Baza\ZISPD.mdb" ' ' //////////////////////////////////////////////////////////////// ' Ustaw nazwę i ścieżkę dla tymczasowego pliku mdb strTempDB = "D:\TKPD\Baza\Comp0001.mdb" ' Utwórz obiekt aplikacji Access 97 'Set objAccess = CreateObject("Access.Application.8") ' Dla Access 2000, użyj Application.9 Set objAccess = CreateObject("Access.Application.9") ' Wykonaj DB Compact w tymczasowym pliku mdb ' (Jeśli wystąpi problem, zachowany jest oryginalny plik mdb) 'objAccess.DbEngine.CompactDatabase strPathToMDB ,strTempDB objAccess.DbEngine.CompactDatabase strPathToMDB ,strTempDB, , , ";pwd=" & "HasloBazyDanych" If Err.Number > 0 Then ' Wystąpił błąd. Poinformuj użytkownika i zatrzymaj wykonanie strMsg = "The following error was encountered while compacting database:" strMsg = strMsg & vbCrLf & vbCrLf & Err.Description Else ' Utwórz obiekt systemu plików do obsługi manipulacji plikami Set objScript= CreateObject("Scripting.FileSystemObject") ' Utwórz kopię zapasową oryginalnego pliku jako Filename.mdbz. W przypadku nieokreślonego błędu można go naprawić, usuwając kończące „z”. 'objScript.CopyFile strPathToMDB , strPathToMDB & "z", True objScript.CopyFile strPathToMDB , strPathToMDB & "_" & Date(), True ' Skopiuj skompaktowany plik mdb by do oryginalnej nazwy pliku objScript.CopyFile strTempDB, strPathToMDB, True ' Zakończyliśmy pracę z TempDB. Zabij to. objScript.DeleteFile strTempDB End If ' Zawsze pamiętaj o sprzątaniu po sobie Set objAccess = Nothing Set objScript = Nothing ' ' ****************** END CODE HERE ' ******************
Message-ID:
<cb35185b-83a9-44ab-b345-5b695559bb81n@googlegroups.com>
Path:
polish.pugleaf.net!archive.newsdeef.eu!archive!apf9.newsdeef.eu!nnrp.usenet.blueworldhosting.com!!news.usenet.blueworldhosting.com!spool1.usenet.blueworldhosting.com!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!3.us.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail