🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #134066

Naprawa bardzo uszkodzonej bazy danych

#134066
From: Phantom
Date: Mon, 25 Apr 2022 04:43
77 lines
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