Newsgroup: it.comp.appl.access
Titolo: Troppi record!

Ho un anagrafico in Access con 240.000 record (recuperato da tabelle Excel). 
Li ho ordinati per nominativo. Adesso devo aggiungere un campo di tipo 
contatore come chiave primaria, ma quando modifico la struttura mi dice che 
ho superato il MaxLocksPerFile. Ho visto che si può modificare con regedit. 
Il valore di default è 251c in esadecimale, 9500 in decimale. Che succede se 
lo alzo? Mi si blocca il PC?
Nell'indecisione, ho provato a copiare solo la struttura su un'altra 
tabella, ad aggiungere a questa il campo di tipo contatore e poi ad 
accodarci i dati con un Copia/Incolla (Accoda dati a tabella esistente). In 
questo modo va però il campo contatore viene assegnato come se non avessi 
ordinato per nominativo la tabella originaria. In pratica segue l'ordine di 
immissione dei dati.
La cosa mi disturba molto........:)))))))
Vorrei vedere il Signor A con il numero 1 (invece di 22750)!
Qualche suggerimento?
Grazie a tutti,
Simona


Invece di copia/incolla usi una query di accodamento nella
quale prima di eseguirla puoi ordinare i record come vuoi.
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Karl
Già provato........sono troppi record e siccome evidentemente quando fa la 
query di accodamento usa memoria temporanea, mi dice che non c'è abbastanza 
memoria per eseguire la query...........:(((((((
Simona 

 Vorrei vedere il Signor A con il numero 1 (invece di 22750)!
E che te ne importa che il signor A abbia 1 invece di 9999?
Quando nell'anagrafica dovrai aggiungere il signor B questo avrà id = 
19999 e non id = 2 come magari vorresti.
In ogni caso quando recuperi dovrai, presumibilmente, utilizzare una 
clausola order by.
ciao
stefano

 stefano
Ciao,
Simona


hai provato con la dritta di Karl Donaubauer?
Dunque, copia ed incolla la tabella incriminata nel tuo database prestando 
attenzione a selezionare solo la copia della struttura.
Ammettiamo che il nome della nuova tabella identica per struttura a quella 
già esistente sia "nomeTabelladaAggiornare"
Crea una query di accodamento:
insert into nomeTabelladaAggiornare(nomecampo1, nomecampo2 ecc)           ' 
non inserire il campo id
select NomeTabelladaCuiPrelevareIdatiOrdinati.campo1, 
NomeTabelladaCuiPrelevareIdatiOrdinati.campo2 ecc
from NomeTabelladaCuiPrelevareIdatiOrdinati
order by NomeTabelladaCuiPrelevareIdatiOrdinati.campo1 
'questo è il campo che deve essere ordinato
fatto ciò esegui la query di accodamento, poi apri la tabella 
"nomeTabelladaAggiornare" e osserva il risultato.
-- 
Ciao
Geppo 


Dimenticavo, prima di eseguire la query di accodamento ricordati di creare 
nella nuova tabella il campo contatore coome chiave primaria.
-- 
Ciao
Geppo 

 per nominativo, perché diavolo il contatore non comincia da 1?
Se la tabella e' nuova o ha subito la "compattazione", dopo aver 
eliminato tutti i record, il contatore comincia/ricomincia da 1. Pero'! 
Quando si fanno accodamenti massivi il sistema sceglie la strategia 
migliore (nel senso che porti ad un minore consumo di tempo di 
esecuzione e/o risorse disponibili).  Tale strategia puo' comportare la 
segmentazione dei dati da inserire(*). Fra le possibili ozioni c'e' il 
fatto che un segmento possa essere caricato "a rovescio" 
(keyword:buffer,buffering, bufferizazione). Prova ad immaginare cosa 
succede se il sistema decide di segmentare per blocchi di mille e li 
carica in modo inverso e come cio' si rifletta sull'ID.
(*) Il discorso diventa "complesso" e guarda caso puo' portare al 
problema che hai avuto (troppi record non consolidati) nel caso di non 
segmentazione.
-- 
ac
y-1=x