mgmg grazie![]()
cmq mi dà errore se cerco di farlo con VBScript mi spiego meglio:
questo è il mio .vbs :
'L'azzeramento o pulizia delle tabelle lascia inalterato
'lo spazio occupato dai record cancellati, per diminuire
'la dimensione del data base bisogna compattarlo:
' in DAO:
Const ForReading=1, ForWriting=2, ForAppending=8
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adOpenForwardOnly = 0
Const adOpenKeySet = 1
Const adLockBatchOptimistic=4
Const adLockOptimistic=3
Const adLockPessimistic=2
Const adLockReadOnly=1
Dim NomeDB, DBSalva
NomeDB = "C:\LANCI.mdb"
DBSalva = "C:\SD\LANCI.mdb"
'copia di sicurezza del data base prima della compattazione
FileCopy NomeDB, DBSalva
'cancella data base temporaneo db1.tmp (controlla gli errori perchè se non c'è ...)
Kill Mid(Trim(NomeDB), 1, Len(Trim(NomeDB)) - 3) & "tmp"
'compatta su db1.tmp
CompactDatabase NomeDB, Mid(Trim(NomeDB), 1, Len(Trim(NomeDB)) - 3) & "Tmp"
'cancella db1.mdb
Kill NomeDB
'copia da db1.tmp
FileCopy Mid(Trim(NomeDB), 1, Len(Trim(NomeDB)) - 3) & "tmp", NomeDB
' in ADO:
'Bisogna aggiungere nei riferimenti del progetto la dll:
'Microsoft Jet and replication Objects 2.6 Library (msjro.dll)
'dal codice precedente DAO cambia solo la compattazione.
Set CONN = New JRO.JetEngine
CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NomeDB & ";User ID=Admin;Password=;"
CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Mid(Trim(NomeDB), 1, Len(Trim(NomeDB)) - 3) & "Tmp" & ";"
'
CONN.CompactDatabase CONN_Sorg, CONN_Dest
'
Set CONN = Nothing
questo è l'errore quando eseguo il mio .vbs:
C:\Compatta_LANCI_mdb.vbs(22, 1) Errore di run-time di Microsoft VBScript: Tipo non corrispondente: 'FileCopy'
dove sbaglio ?
ciao e grazie![]()

Rispondi quotando