Newsgroup: it.comp.appl.access
Titolo: campo contatore

vorrei riportare un campo contatore al valore dei record di una tabella (piů 
uno).
con la compattazione del db ciň avveniva automaticamente, perchč ora non 
funziona piů?
(access 2003)
grazie.

 grazie.
Le cose non sono mai andate come tu dici.
Se nella tabella hai cento record e il contatore dell'ultimo
record è 150, ricompattando sei sicuro che il nuovo record
avrà il numero 151.
Non pensare che possa avere il 101...
Perché ciò avvenga occorre che vi siano 100 record e che
l'ultimo abbia il numero 100.
Basta un minimo di ragionamento...
Bruno 

 Bruno
..peccato che pur non conoscendomi mi concedi così poca fiducia!!! (peccato 
per te naturalmente)
io intendevo dire proprio questo:
ho una tabella con 5 record, ho cancellato il sesto e anche dopo la 
ricompattazione se creo un nuovo record invece di 6 il contatore va a 
sette!!
ho ricompattato più volte ma niente...
naturalmente per abbreviare i tempi ho cancellato tutti i record, ho 
ricompattato il db e riscritto i record, e così funziona.
mi è rimasto il dubbio del perchè con qualche record presente in tabella il 
contatore non si "riallinei" all'ultimo.
ciao e grazie ugualmente.

vale ha scritto:

Il campo contatore funziona così.....se hai 8 record numerati da 1 a 8 e ne cancelli 7, il nuovo avrà numero 9.....se vuoi un campo con numerazione progressiva e senza 'buchi' devi farlo usando Max in SQL o la funzione Dmax di Access e poi accodarlo alla tabella incriminata
Ciao
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it


Questo lo sapevo, ma mi pareva di ricordare che se cancello l'ottavo record 
e ricompatto il db, il contatore ripartiva da 8.
non dovrebbe essere così?
ciao e grazie.

vale ha scritto:

A me non pare.....cmq io il campo contatore non lo uso mai, preferisco una funzioncina per trovare il max e inserirlo. Oltretutto così ho anche la possibilità di riempire buchi lasciati da eventuali cancellazioni....non serve a nulla (tanto i record sono gli stessi) ma non gonfi gli ID a dismisura se usi la tua applicazione per anni!


 ciao e grazie.
Dovrebbe essere così ovvero, più precisamente, il contatore
dovrebbe ripartire dal più alto numero già inserito + 1.
Però ho fatto alcune prove con Access 2003 / 2007 ma ciò
più non si verifica.
Mentre mi giocherei la testa che si verificava in versioni precedenti.
Chissà se qualcuno ha qualche Access anteriore e la voglia di fare
qualche esperimento...
Bruno
PS
CurrentDB.Execute "ALTER TABLE T1 ALTER COLUMN ID COUNTER(1, 1);"
Questa istruzione, riferita alla tabella T1 e al contatore ID, fa ripartire
correttamente il contatore a condizione che:
1 - T1 non sia una tabella collegata
2 - ID non sia relazionato ad altre tabelle.
È anche possibile rinumerare (primo valore 1, step 1) tutti i record.
Occorre però eliminare e reinserire campo e nome della PK.
Come regola generale però non dovremmo occuparci minimamente
dei valori di una PK: quella svolge automaticamente il suo
lavoro e non vale assolutamente la pena - opinione personale! -
sostituirla con un surrogato manuale per la sola ragione di non
veder generati buchi nella numerazione. 


Si effettivamente era cosi con le vecchie versioni, ma come ha detto Bruno 
adesso le cose son diverse.
Dunque per ottenere quello che vuoi dovresti crearti una routine ad ok.
-- 
Ciao
Geppo 

 veder generati buchi nella numerazione.
-- 
Ciao
Geppo 

 qualche esperimento...
Con access 97 si comporta come dice l' OP
inserisco 20 record , ne cancello 10, reinserisco: riparte da 21
inserisco 20 record , ne cancello 10, compatto database, reinserisco:
riparte da 11
VA

 wrote in message 
news:g20n2c$p5f$1...@tdi.cu.mi.it...

Ok, grazie per la conferma.
Bruno