Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CompactDatabase ERRORE description

35 views
Skip to first unread message

ulderico

unread,
Jun 23, 2010, 5:15:31 AM6/23/10
to
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.

Karl Donaubauer

unread,
Jun 23, 2010, 7:10:52 AM6/23/10
to
ulderico wrote:
> 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=" &
> ...

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


ulderico

unread,
Jun 23, 2010, 11:03:16 AM6/23/10
to
On 23 Giu, 13:10, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> ulderico wrote:
> > 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=" &
> > ...
>
> 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/...
> ehttp://groups.google.com/group/it.comp.appl.access/msg/3ef7ce3e20f92e6e

>
> --
> Ciao
> Karl
> *********
> 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.

Karl Donaubauer

unread,
Jun 23, 2010, 1:38:17 PM6/23/10
to
ulderico wrote:

> Karl Donaubauer wrote:
>>> 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=" & ...
> ...

> 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 ??

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

ulderico

unread,
Jun 24, 2010, 3:32:57 AM6/24/10
to
> Access FAQ:www.donkarl.com/it- Nascondi testo citato
>
> - 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.

0 new messages