Newsgroup: it.comp.appl.access
Titolo: come creare numero di matricola progressivo ?

salve ragazzi ho una tabella VOLONTARI con all'interno in campo MATRICOLA
ho la necessita di fare in modo che ad ogni inserimento di un nuovo 
volontario venga assegnato un numero di matricola(esempio 2004700001)
potreste spiegarmi come fare ?
grazie

 potreste spiegarmi come fare ?
Soluzione 1: cercare tramite Google perché la cosa è stata chiesta infinite 
volte.
Soluzione 2: devi prima definire una logica con la quale il numero deve essere 
formato, quindi ti serve una funzione che ti calcoli il nuovo progressivo, 
infine devi utilizzare la tua formula nell'evento Form_BeforeUpdate.
p.s.: lo so che non ti ho scritto io il codice, ma credo che si debba partire 
da idee chiare e precise prima di scrivere del codice.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution

 ha scritto nel messaggio 
news:875ea3552d6898...@news.tin.it...

ho provato con google e sul sito comune ma non ci ho capito tanto
per il punto  2 la logica e che il numero deve essere progressivo  e cioe
2004700000/2004700001/2004700002/2004700003
in parole povere devo partire da 200470 ed aggiungere + 0001 + 0002 ecc
potresti aiutarmi ?
dove dovrei scrivere la Formula ?
grazie

 dove dovrei scrivere la Formula ?
Formula? Non siamo mica in Excel.
Qui stiamo parlando di codice VBA.
Nello specifico, probabilmente l'assegnazione di questo numero progressivo 
deve essere fatta tramite una form, quindi dovrai utilizzare l'evento Form_BeforeUpdate.
In questo evento andrai ad utilizzare la funzione che ti calcola il nuovo 
progressivo, quindi lo assegnerai al controllo associato e sei a posto.
Per quanto riguarda la funzione che ti calcola il nuovo progressivo, questa 
dipende molto dal tipo di dato che vai a memorizzare in tabella: visto che 
hai fatto l'esempio di una stringa di cifre con una parte fissa ed una variabile, 
mi auguro che questo dato sia memorizzato come stringa.



cut
allora ho una tabella VOLONTARI con dentro il campo MATRICOLA (formattato 
NUMERICO INTERO LUNGO)
ho creato una maschera per inserire i dati e nel controllo del campo 
MATRICOLA come valore predefinito ho scritto il seguente codice
=Nz(DMax("[matricola]";"[volontari]");2004700083)+1
(p.s la numerazione mi serviva che partisse da 83 perche avevo gia inserito 
83 record)
ho fatto giusto ?
qualche consiglio ?
grazie

 qualche consiglio ?
Quello che hai fatto ti permette di valorizzare un controllo non appena ti 
trovi su un record nuovo, ma non è quello che ti serve.
Infatti, se due utenti vanno entrambi su record nuovo e non salvano, il campo 
matricola viene valorizzato per entrambi allo stesso valore. Uno dei due 
salverà per primo e l'altro, al salvataggio, riceverà un bell'errore di campo 
chiave duplicato.
Il calcolo e l'assegnazione del progressivo devono essere fatti in fase di 
Form_BeforeUpdate.



il programma non viene usato in rete ed è un solo utente ad operare sui 
record 

 sui record
Capisco, ma non ritengo comunque corretto questo modo di procedere.
Posso ammettere che, nel tuo caso, il "corretto" funzionamento del codice 
sia interpretabile come un effetto collaterale della situazione in cui esso 
va in esecuzione.


 ha scritto nel messaggio 
news:875ea3552d8878...@news.tin.it...

accetto volentieri consigli  sono alle prime armi e mi piacerebeb imparare 
:-)
so bene che se un programma si scrive subito correttamente un futuro per 
eventuali aggiornamenti si evitano ricompilazioni complete
il fatto che per ora i record vengono utilizzati solo da 1 persona è 
relativo , perche un futuro il prg potrebbe essere messo in rete e mi 
troverei con il problema da te descritto
pero per ora mi serve il prg che funzioni  eventualmente poi dopo verrà 
fatto alla perfezione e magari da uno che se ne intende
Io sono volontario della croce rossa e tutto il mio lavoro ( di 
programmazione) serve per gestire in modo un po piu semplice tutti i 
componenti dei volontari
quindi lavorando di giorno e facendo alcuni turni di notte come volontario 
il tempo che mi rimane e poco ( visto che ho anche 1 moglie e 2 figli), per 
questo il prg cerco di farlo in modo veloce almeno per farlo funzionare poi 
dopo si vedra
ti ringrazio dell'aito che mi hai dato
ciao e...alla prossima :-)