Newsgroup: it.comp.appl.access
Titolo: CompactDatabase ERRORE description

Buongiorno a tutti,
stamani improvvisamente in fase di backup del Db mi restitutisce
l'errore "impossibile trovare il campo description" e facendo il debug
si arresta nella seguente riga:
mjet.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
mpath & mfiletemp, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mpath & mfiledest
per completezza Vi posto l'intera function e vi dico che compilando il
modulo non restituisce errori:
Function backup()
    Dim fs, mtime As Integer, mext As String, mpath As String, mjet As
New jro.JetEngine
    Dim mfiledest As String, mfiletemp As String
    'funzione utilizzabile in qualunque database, senza alcun
adattamento
    mtime = Int(Mid(CStr(Time), 1, 2))
    mext = IIf(mtime < 13, "MAT_", "POM_")
    mfiledest = "backup_" & mext & CurrentProject.Name
    mpath = EstraePercorso(CurrentProject.FullName)
    With Application.FileSearch
        .LookIn = mpath
        .FileName = mfiledest
        .MatchTextExactly = True
        If .Execute > 0 Then
            If CDate(Mid(FileDateTime(.FoundFiles(1)), 1, 11)) = Date
Then
                GoTo fine
            Else
                Kill mpath & mfiledest
            End If
        Else
            GoTo backup
        End If
    End With
backup:
    mfiletemp = "backup_" & CurrentProject.Name
    Set fs = CreateObject("Scripting.FileSystemObject")
    If Dir(mpath & mfiletemp) <> "" Then Kill mpath & mfiletemp
    fs.copyfile mpath & CurrentProject.Name, mpath & mfiletemp, True
    mjet.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & mpath & mfiletemp, _
                         "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & mpath & mfiledest
    Kill mpath & mfiletemp
fine:
end function
Grazie.

 ...
Di solito il messaggio significa una corruzione del db.
Fai una copia di sicurezza del file e prova se puoi compattare il db
a mano. Se no, vedi p.e.
http://groups.google.com/group/it.comp.appl.access/browse_frm/thread/81dd1fa7f4e7891a/b03fdbae68651b2d
e 
http://groups.google.com/group/it.comp.appl.access/msg/3ef7ce3e20f92e6e
-- 
Ciao
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Access FAQ:
www.donkarl.com/it
Provando e riprovando dopo aver fatto la copia di backup a mano, mi ha
restituito un errore sulla riga:
  fs.copyfile mpath & CurrentProject.Name
in effetti non riusciva a copiare il file.
Il problema era (ho risolto) la lentezza delle rete di stamani,
infatti riflettendoci con calma il file da copiare è sulla rete.
Probabilmente il primo messaggio nascondeva l'impossibilità di
applicare il metodo Copyfile anche se l'errore avveniva sulla riga
successiva, sei d'accordo con questa teoria ??
Grazie Karl.

 successiva, sei d'accordo con questa teoria ??
Se ho capito bene, il tuo codice fai una copia del db corrente. (?)
Copiare un file aperto è sempre una lotteria e puo risultare
in una copia danneggiata. Questo potrebbe spiegare l'errore
che hai segnalato prima.
Compattare il db corrente (da A00 a A03) è molto più facile con
il codice che trovi qui:  
www.donkarl.com/it?FAQ6.6
.
Se sbaglio e si tratta di un db diverso che vuoi compattare,
prova con il codice che trovi qui:  
www.donkarl.com/it?FAQ6.7


 - Mostra testo citato -
hai capito bene,  il codice fa una copia del db corrente rinominadolo
(mfiletemp = "backup_" & CurrentProject.Name )
poi compatta  "backup_****" che è chiuso e poi lo copia rinominadolo
ancora (MAT o POM)  e alla fine "killa" il temporaneo
("backup_****" )  ...---  forse è più facile se leggi il codice.
Grazie ancora Karl,  sempre puntuale e preciso.