Newsgroup: it.comp.appl.access
Titolo: rilevare i numeri mancanti in una scala che inizia da 1 a un nr. superiore in relazione al nr. degli atti inseriti

Access 2002 / 2003
In un Dbase, nell'inserire gli atti progressivi del mese, che iniziano 
sempre da 1 pu� succedere che ne venga saltato qualcuno e che non ci si 
accorga che ci� sia avvenuto.
Questo perch� l'inserimento viene effettuato da persone diverse e in tempi 
diversi, inoltre gli atti inseriti sono tanti da rendere impegnativo il 
controllo a vista.
Esempio: fra il numero 1 e il 3 non deve mancare il 2, in tal caso dovr� 
essere segnalato, e cos� via fino all'ultimo numero (ogni numero corrisponde 
ad un record).
Esiste un metodo per risolvere il problema?
Mille grazie
Bruno 

 Bruno
C'è un esempio sul sitocomune
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access


Come vengono inseriti i numeri progressivi ? dall'utente in base
all'ultimo inserito precedentemente ? in maniera automatica ? (in
questo evidentemente non funzionerebbe
Una soluzione potrebbe essere:
nell'evento beforeupdate
dato Campo1 il campo della tabella e il controllo che contiene il
progressivo e immaginando che il progressivo sia annuale e sia Anno il
campo della tabella e il controllo che contiene l'anno:
me.campo1 = dmax("campo1", "tabella", "anno = " me.anno) + 1
e nell'evento afterupdate
msgbox "Il numero assegnato è " & me.anno & "/" & me.campo1
Ma l'inserimento dei dati avviene anche contemporaneamente ad opera di
diversi operatori e da macchine diverse ?   In questo caso c'è la
possibilità che venga creato un numero doppio se due operatori salvano
contemporaneamente (nello stesso istante) un record e quindi occorre
gestire questa eventualità.
AleC

 Bruno
C'� un esempio sul sitocomune
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access
-------------
Mille grazie. 

 ha scritto nel messaggio 
news:0a546e36-dde8-45ef...@a70g2000hsh.googlegroups.com...



e nell'evento afterupdate
msgbox "Il numero assegnato � " & me.anno & "/" & me.campo1
Ma l'inserimento dei dati avviene anche contemporaneamente ad opera di
diversi operatori e da macchine diverse ?   In questo caso c'� la
possibilit� che venga creato un numero doppio se due operatori salvano
contemporaneamente (nello stesso istante) un record e quindi occorre
gestire questa eventualit�.
AleC
-------------
Mille grazie. 

 Mille grazie.
Il codice che ti ho dato non funziona correttamente quando nel campo
anno immetti (perché è il 2 gennaio o per errore) un anno che ancora
non esiste nella tabella; in questo caso il valore nel campo1 sarebbe
Null. Quindi occorre gestire la possibilità che sia inserito un anno
che non esiste nella tabella prima di calcolare il progressivo.
if inull(dlookup("Anno", "tabella", "Anno = " & me.anno)) then
  if   Msgbox("E' stato inserito un nuovo anno: " & me.anno & vbcrlf &
"Confermi l'inserimento ?", vbyesno) = vbno then
       Cancel = true
       exit sub
   else
       Me.Campo1 = 1
    end if
else
  il codice che ti ho dato prima
end if
AleC


L'ho cercato prima di dare la mia risposta perché mi pareva che ci
fosse ma non l'ho trovato. (ho cercato "progressiv" sulle pagine con
gli elenchi)
AleC

 ha scritto nel messaggio 
news:6bb57937-614e-4b75...@64g2000hsu.googlegroups.com...



AleC
-------------------------
Grazie, Bruno