Newsgroup: it.comp.appl.access
Titolo: compattare il dbase

Ciao a tutti...il quesito è questo...spero qualcuno possa aiutarmi:
lavorando un dbase di grandissime dimensioni mi sono reso conto che
compattando di tanto in tanto la dimensione del file si riduce enormemente.
tuttavia se volessi inserire automaticamente l'istruzione per la
compattazione dopo una certa funzione e quindi riprendere la funzione
stessa...ahime' non me lo consente.-...
qualche idea...? ho bisogno di effettuare questa compattazione priorio a
causa delle enormi dimensioni del file.
Tante grazie a tutti
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:193Z203Z232Z5Y1...@usenet.libero.it...

puoi inserire la compattazione automatica in uscita (dal menu strumenti -->
opzioni-->Generale-->Compata alla chiusura)
oppure su chiusura del db lanciare una piccola sub che ti lancia un nuovo db che contiene il codice
per compattare, oppure uno script...
sul 
www.sitocomune.com
 trovi parecchi esempi
ciao
Nick


Ciao nick e scusa...sembra quasi l'abbia fatto a posta...voglio dire del tuo
quesito sulle barre di progressione dove ti ho risposto di guardare il sito
comune...non era uno scherzo...solo adesso sto leggnedo la tua risposta...
per le barre di progressione io ho risolto con l'esempio di Hevans,,,mi
sembra sia questo il nome....e cmq se non ricostruisci ti invio il codice
che oramai uso da qualche anno e che è stato ricavato da li'.
quanto alla compattazione il problema è diverso..ahime', mi è sembrato di
capire che se vuoi campattare non puoi farlo se c'è una routine in corso...
quindi la cosa che volevo sapere è proprio questa, cioè se è possibile
nell'ambito di una function o sub dire ad access di fare una serie di cose,
poi compattare e quindi riprendere le altre cose da fare..
questa necessità scaturisce dal fatto che il mio dbase ad una certa fase di
laborazione raggiunge una dimensione di circa 1,5 gb e se non compatto si
pianta tutto e perdo il lavoro....
pensa che interrompendo tutte le attività e compattando il dbase scende ad
una dimensione di 350 mb...
ancora grazie.


 Inviato via 
http://arianna.libero.it/usenet/
per la compattazione..tu non puoi compattare il db in uso indipendentemente dal fatto che una
routine sia aperta on no.. è il db in genere che deve essere chiuso.
quello che trovi nel menu strumenti-->utilità-->compatta/ripristina  lancia uno script che chiude il
db attivo e lo compatta.
considera che loperazione di compattazione copia il db da compattare in uno nuovo...
io uso questa sub che da un db me ne compata un altro...
Public Sub CompattaDBase(Db As String)
On Error GoTo ErrComp
Dim fs, fd
Dim Perco As String
DoCmd.Hourglass True
Set fs = CreateObject("scripting.filesystemobject")
Perco = "C:\DbTempo.mdb"
DBEngine.CompactDatabase Db, Perco
Set fd = fs.getfile(Db)
Dimen = " dimensioni: pima: " & fd.Size / (1024) & " kb"
Set fd = fs.getfile(Perco)
Dimen = Dimen & " dopo: " & fd.Size / (1024) & " kb"
fs.copyfile Perco, Db, True
Kill Perco
'MsgBox "Compattazione terminata"
UscitaComp:
DoCmd.Hourglass False
Exit Sub
ErrComp:
    ErrCompattazione = ErrCompattazione & vbNewLine & Db & " Errore " & Err.Number & " " &
Err.Description
    Resume UscitaComp
End Sub
spero di averti chiarito le idee
ciao
Nick