Thread View: pl.comp.bazy-danych.msaccess
2 messages
2 total messages
Started by Phantom
Mon, 25 Apr 2022 04:43
Naprawa bardzo uszkodzonej bazy danych
Author: 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 ' ******************
Re: Naprawa bardzo uszkodzonej bazy danych
Author: Phantom
Date: Mon, 25 Apr 2022 06:17
Date: Mon, 25 Apr 2022 06:17
12 lines
457 bytes
457 bytes
Dobra, nie było tematu. Wystarczyło zamienić: Set objAccess = CreateObject("Access.Application.9") na: Set objAccess = CreateObject("Access.Application") Polecam stosowanie tego rozwiązania w podbramkowych sytuacjach. Ja stosuję to rozwiązane dodatkowo na serwerach sieciowych w nocy jak nikt już nie pracuje na oprogramowaniu. Rano wszystkie bazy naprawione, zdefragmentowane i gotowe do pracy. Pozdrawiam Tomek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads