Newsgroup: it.comp.appl.access
Titolo: un bel problema

č da quakche tempo che ormai vado tediando tutto l'NG con la storia del mio
db di 850.000 record che cresce fino a raggiungere i 400/500MB.
Comprendo che a queste dimensioni le operazioni potrebbero essere non
eccessivamente veloci, ma doverci impiegare anche due ore per eseguire una
banale query di aggiornamento.
Cosě con l'aiuto di Marco Serra sono riuscito a scrivere qualche riga di
codice ed i tempi di lavorazione si sono notevolmente ridotti ma, ahime!,
dopo qualche aggiornamento all'esecuzione di una nuova function si verifica
sempre lo stesso fenomeno
"Access bloccato"
mi tocca resettare tutto e se tutto va bene ricominciare da capo.
Ma ora ho raggiunto il fondo:
dopo uno di questi incidenti , verificatosi dopo circa 5 oire di lavoro, al
momento di riavviare il dbase ecco il messaggio ricevuto da access:
" non č un indice di questa tabella. Esaminare l'insieme indexes
dell'oggetto TableDef per determinare i nomi di indice validi.
OK        ?
che devo fare?
mi rassegno a buttare tutto a mare?
e se questa sia l'unica soluzione, premesso che mormalmente lavoro su una
macchina con le seguenti principali caratteristiche(si tratta di un IBM)
PE II Intel 350Mhz
64 Mb ram
HG 4 Gb
potete indicarmi se ci sono accorgimenti da apportare alla configurazione
del sistema per migliorane le prestazioni con access, ovvero quali devono
essere i requisiti minimi funzionali per garantire il corretto funzionamento
del caro software?
Quando poi il db mi consente di lavorare ho sostituito le mie query di
aggiornamento con funzioni del tipo
Function troncamento()
' questa funzione provvede ad aggiornare il campo ragcod
' dal campo filiale di cui restituisce le prime due cifre
Dim archivi As Database
Dim tabe As Recordset
Dim ragcod As String
Dim filiale As String
Set archivi = DBEngine.Workspaces(0).Databases(0)
Set tabe = archivi.OpenRecordset("backup1", dbOpenTable)
tabe.MoveFirst
Do While Not tabe.EOF
tabe.Edit
tabe("ragcod") = Left$(tabe("filiale"), 2)
tabe.Update
tabe.MoveNext
Loop
tabe.Close
MsgBox "aggiornamento ragcod completato"
End Function
al momento in cui vado ad eseguire il codice non so cosa č successo finchč
non compare il msgbox in coda al codice stesso.
Vorrei inserire quindi, per capire se tutto funziona e come, una progress
bar. Ho trovato qualcosa sul sito comune ma non ho capito come si fa ad
infilarlo nel codice che ho scritto ...
Un'ultima cosa
dovrei aggiornare un campo della mia tabella ad un valore secondo una
condizione.
io ho provato cosě
Function fasce()
' questa funzione provvede ad aggiornare il campo fasce di risch
' dal campo filiale di cui restituisce le prime due cifre
Dim archivi As Database
Dim tabe As Recordset
Dim stato As String
Dim punteggio As Long
Dim fasce As String
Set archivi = DBEngine.Workspaces(0).Databases(0)
Set tabe = archivi.OpenRecordset("backup1", dbOpenTable)
tabe.MoveFirst
Do While Not tabe.EOF
tabe.Edit
If stato = "S" Then
tabe("fasce di risch") = "5"
Else
If stato = "I" Then
tabe("fasce di risch") = "4"
End If
tabe.Update
tabe.MoveNext
Loop
tabe.Close
MsgBox "aggiornamento ragcod completato"
End Function
ma quando eseguo il codice, pur non segnalandomi errori, non mi restituisce
alcun risultato.
Per favore, potete dirmi dove ho sbagliato?
Grazie per la pazienza e la competenza di tutti.
Antonio

 ha scritto nel messaggio
news:q0FS5.15351$FV2.4...@news.infostrada.it...
