Newsgroup: it.comp.appl.access
Titolo: Argomento non valido ??????

giuro...non ci sto capendo niente!
innanzitutto salve a tutto l'NG.
come sempre preciso le caratteristiche del pc che uso:
P4 intel 1600 MHZ 256 MB ram HD 50 GB, SO windows 2000 nt - Access 2000
Ecco il mio problema:
sono diversi anni che uso sempre la stessa istruzione per aggiornare un
campo di una tabella
Function aggiorna_campo()
Dim archivi As Database
Dim tabe As Recordset
Dim azienda As String
Dim Testo_Sys As Variant
Dim contarecord As Double
Dim maxrecord As Double
DoEvents
DoCmd.Hourglass True
Set archivi = DBEngine.Workspaces(0).Databases(0)
Set tabe = archivi.OpenRecordset("MiaTabella", dbOpenTable)
tabe.MoveLast
maxrecord = tabe.RecordCount
Testo_Sys = SysCmd(acSysCmdInitMeter, "aggiornamento azienda in corso...
attendere prego...", maxrecord)
contarecord = 1
Testo_Sys = SysCmd(acSysCmdUpdateMeter, contarecord)
tabe.MoveFirst
    Do While Not tabe.EOF
    tabe.Edit
    tabe("azienda") = "PIPPO"
tabe.Update
tabe.MoveNext
Testo_Sys = SysCmd(acSysCmdUpdateMeter, contarecord)
contarecord = contarecord + 1
Loop
tabe.Close
DoCmd.Hourglass False
Testo_Sys = SysCmd(acSysCmdRemoveMeter)
MsgBox "aggiornamento azienda completato"
End Function
La necessità è quella di aggiornare a PIPPO il campo azienda di una tabella
che chiamo MiaTabella.
La struttara di MiaTabella é
azienda text 5
codice text 13 primary key
classe intero
il particolare piu' significativo è che pure avendo la tabella una struttura
particolarmente semplice la stessa presenta circa 4 milioni di record.
in passato, con archivi che avevano tra i 500.000/800.000 record avevo
scelto la soluzione rappresentata dal metodo .edit .update, in vero proprio
su suggerimento di questo NG, in sostituzione della piu' semplice istruzione
sql della query di aggiornamento in quanto l'esecuzione della query
richiedeva tempi lunghissimi (anche 20/30 minuti).
Forte di questo convincimento anche per questa occasione ho rispolverato il
vecchio e usato codice ma, ahime'!, dopo dieci minuti di esecuzione (durante
i quali non so quale attività svolga il sistema, compare un avviso che dice
Argomento non valido!
andando a vedere con il debug scopro che la routine si ferma sull'istruzione
tabe.update.
il dbase sul quale sto lavorando, prima dell'esecuzione di questa funzione
ha una dimensione di circa 360 MB.
al momento in cui si verifica questo errore la procedura si interrompe ed è
come se nulla fosse successo.
utilizzando lo stesso codice pero' mi è anche capitato che l'errore in
discorso non si sia verificato ma dopo una trentina di minuti ho sono stato
costretto a resettare access perchè bloccato.
a questo punto la dimensione del dbase è diventata di 2.097 MB.
riavvio access...riapro il dbase...è tutto li'. ma se cerco di compattare
non me lo consente...
questo significa che non ho trovato altra soluzione se non esposrtare in
dbase nuovo tutti gli elementi che mi potevano servire...e quiondi
ricominciare da capo.
per concludere specifico di aver attivato le seguenti librerie:
Visual basic for application
microsoft acce 9.0 object library
microsoft DAO 3.6 object library
ole automation
microsoft activex data objects 2.1 library
posso fornire ogni ulteriore chiarimento...
chiedo scusa per questa mail un po' lunghina...ma...come ho detto non ci
capisco niente piu'.
ringrazio anticipatamente chiunque potrà aiutarmi a comprendere cosa sta
succedendo.
antonio
P.s.
ho provato a svuotare questo archivio e compattarlo...dopo un po' di inutile
attesa mi sono convinto a resettare access...ahime' il dbase ha assunto una
dimenzione di 2.097 MB...siate gentili...dove sbaglio?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
Apparentemente non sbagli nulla, cioè non ho letto con molta attenzione 
il codice ma ho pensato subito a ciò che poi scrivi alla fine: il file 
supera i 2Gbytes di memoria su disco. La stessa Microsoft afferma che 
Access, con db superiori a tale dimensione non diventa più affidabile e 
controllabile...alla faccia delle cose fatte a regola....
mi spiace, mi sa che devi passare a qualcosa di più serio di Access
Ciauz
--
'gnurant come una cucuzza
Inviato da 
www.mynewsgate.net