Newsgroup: it.comp.appl.access
Titolo: CampoContatore

In una maschera  ho diversi campi, se seleziono anche un
segno di spunta il campo contatore si incrementa, alcune volte vorrei
omettere
 la registrazione del record, ma creo dei buchi nel campo contatore.
Vi chiedo se esiste il modo per non salvare il record ed allo stesso modo
far si che non
si crei il buco sul campo
contatore che nel db è obbligatorio.
Ho provato con la funzione in vb salva record o annulla,
se premo su annulla il record non viene salvato ma il problema "buco"
sussiste.
Esiste un modo per evitare questo disguido?
Grazie in anticipo a chi vorrà darmi un consiglio.
Saluti a tutti.
Fred

 ha scritto nel messaggio
news:wnoEb.194673$vO5.7...@twister1.libero.it...

Me ne vengono in mente due:
1 - non utilizzare il contatore per contare, non è nato per quello;
2 - utilizzare tabelle temporanee dove parcheggerai i dati, e una volta
confermato l'inserimento li "sposti" nella tabella originale.
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:wnoEb.194673$vO5.7...@twister1.libero.it...

Il valore di un campo di tipo contatore non può essere modificato
dall'utente finale ma solo da Access in base alle sue "insindacabili"
regole.
La chiave primaria realizzata tramite un campo contatore è SOLAMENTE un modo
veloce per rendere univoci i record di una tabella e la chiave primaria non
ha alcuna velleità di codifica "automatica e senza buchi" dei record.
Se non vuoi che, in caso di rinuncia alla registrazione di un record, resti
un buco nella chiave primaria, invece che un campo di tipo Contatore usa un
campo di tipo Numerico e fatti carico tu, a manina santa, dell'aggiornamento
del suo valore (ad esempio usando la funzione DMax nella proprietà Valore
predefinito della casella di testo associata alla chiave primaria).
Resta comunque il fatto che, se in un secondo momento annulli un record, si
formerà un "buco" nella chiave primaria.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Intanto grazie per il consiglio. Penso di utilizzare il sistema della tab
temporanea ma ho
 un dubbio(e avrei bisogno di un piccolo esempio), siccome l'applicazione
funziona
client server e i 7 client immettono i loro record
in maniera ordinata. Voglio dire che il report riporta in maniera esatta la
progressione
 temporale in cui il client 1 ha immesso il suo record e così via , poi con
la tabella
 temporanea la numerazione sarà casuale  o avrà una progressione logica ?
Federico.

XRoberto Del Newsgroups.   Ho creato un nuovo campo proprio per contare,
sulla tabella
e l'ho chiamato contatore sul valore predefinito del controllo della
maschera ho
scritto quello che ho letto in una tua risposta
=iif(isnull(DMax("[Contatore]";"nome_tabella"));1;DMax("[Contatore]";"nomeTa
bella eccc.....
funziona a meraviglia, ma il problema sussiste quando più utenti si
connettono come client
io per esempio registro un record 
es.il
 N°1 ed un mio collega
contemporaneamente ne
prende un'altro mi succede che se stampo il report ho due record con
contatore 1  e contatore1,
prima quando usavo il contatore vero e proprio questo non succedeva i record
erano sempre
progressivi , mi puoi suggerire come posso risolvere?
Ciao e grazie di nuovo.

 Ciao e grazie di nuovo.
-- 



Mah! Io farei un controllo prima di assegnare il nuovo "contatore" se è già
stato "preso" da qualcun'altro; magari con un DLookup...
Ciao.
--
Sergio MAZZA