Phantom
unread,Apr 25, 2022, 7:43:59 AM4/25/22You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
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 ' ******************