Ik wil graag wekelijks een acces97 database willen comprimeren op een Xp-pc waar een versie van acces2003 op staat. Nu heb ik een script gemaakt gevonden bewerkt.
Script!
rem batchbestand
<@ECHO OFF
echo --------------------------------- >>C:\cp\compact.log
echo - Comprimeren Database - >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
echo Comprimeren gestart >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
if exist C:\cp\****.ldb GOTO Ingebruik
Rem Kopieren van database naar de map backup
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
xcopy C:\cp\****.mdb C:\cp\backup\ /y >>C:\cp\compact.log
call cp.vbs
echo ---------------------------------->>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\\cp\compact.log
echo Comprimeren beïndigd >> C:\cp\compact.log
echo ---------------------------------->>C:\cp\compact.log
GOTO einde
:Ingebruik
echo ---------------------------------- >>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
echo Comprimeren niet uitgevoerd, database niet vrij >> C:\cp\compact.log
echo ---------------------------------- >>C:\cp\compact.log
:einde
Script:CP.VBS
Dim objScript
Dim objAccess
Dim strPathToMDB
Dim strTempDB
Dim strMsg
strPathToMDB = "C:\cp\***.mdb"
strTempDB = "C:\cp\***001.mdb"
Set objAccess = CreateObject("Access.Application.8")
objAccess.DBEngine.CompactDatabase strPathToMDB, strTempdb, , , ";PWD=sbb"
If Err.Number > 0 Then
strMsg = "The following error was encountered while compacting database:"
strMsg = strMsg & vbCrLf & vbCrLf & Err.Description
msgbox strMsg
Else
Set objScript= CreateObject("Scripting.FileSystemObject")
objScript.DeleteFile strPathToMDB
objScript.CopyFile strTempDB, strPathToMDB, True
objScript.DeleteFile strTempDB
End If
Set objAccess = Nothing
Set objScript = Nothing
Nu werkt dit script alleen op een xp-systeem waarop acces97 is geinstalleerd.
Is er een mogelijkheid om dat ook werkend te maken met een geinstaleerde acces2003??
Ik dacht dat het iets te maken had met het acces.application.8 maar kom daar niet uit.
Alvast bedankt.
Script!
rem batchbestand
<@ECHO OFF
echo --------------------------------- >>C:\cp\compact.log
echo - Comprimeren Database - >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
echo Comprimeren gestart >>C:\cp\compact.log
echo --------------------------------- >>C:\cp\compact.log
if exist C:\cp\****.ldb GOTO Ingebruik
Rem Kopieren van database naar de map backup
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
xcopy C:\cp\****.mdb C:\cp\backup\ /y >>C:\cp\compact.log
call cp.vbs
echo ---------------------------------->>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\\cp\compact.log
echo Comprimeren beïndigd >> C:\cp\compact.log
echo ---------------------------------->>C:\cp\compact.log
GOTO einde
:Ingebruik
echo ---------------------------------- >>C:\cp\compact.log
date /t >>C:\cp\compact.log
time /t >>C:\cp\compact.log
echo Comprimeren niet uitgevoerd, database niet vrij >> C:\cp\compact.log
echo ---------------------------------- >>C:\cp\compact.log
:einde
Script:CP.VBS
Dim objScript
Dim objAccess
Dim strPathToMDB
Dim strTempDB
Dim strMsg
strPathToMDB = "C:\cp\***.mdb"
strTempDB = "C:\cp\***001.mdb"
Set objAccess = CreateObject("Access.Application.8")
objAccess.DBEngine.CompactDatabase strPathToMDB, strTempdb, , , ";PWD=sbb"
If Err.Number > 0 Then
strMsg = "The following error was encountered while compacting database:"
strMsg = strMsg & vbCrLf & vbCrLf & Err.Description
msgbox strMsg
Else
Set objScript= CreateObject("Scripting.FileSystemObject")
objScript.DeleteFile strPathToMDB
objScript.CopyFile strTempDB, strPathToMDB, True
objScript.DeleteFile strTempDB
End If
Set objAccess = Nothing
Set objScript = Nothing
Nu werkt dit script alleen op een xp-systeem waarop acces97 is geinstalleerd.
Is er een mogelijkheid om dat ook werkend te maken met een geinstaleerde acces2003??
Ik dacht dat het iets te maken had met het acces.application.8 maar kom daar niet uit.
Alvast bedankt.