Newsgroup: it.comp.appl.access
Titolo: Annullamento inserimento record

Pongo il problema e aspetto consigli o altre possibilita' di risolvere il 
problema:
L'utente dopo avere inserito i dati in una sottomaschera (foglio dati) di una 
maschera (non legata) , deve avere la possibilta' di premere in pulsante 
annulla e quindi  annullare tutti gli inserimenti(più records) e chiudere la 
maschera.
Questa sottomaschera ha come origine dati una query con dei parametri legati a  
dati della maschera che a sua volta la apre.
Come si sa in access ogni volta che si inserisce un record in una e si passa al 
successivo, questo viene di fatto inserito nella tabella origine.
Ho vagliato varie possibilita':
inserire nella tabella origine della sottomaschera un campo booleano impostato
come valore di default a falso, cosi che quando l'utente preme il pulsante 
ok, tramite query di aggiornamento o recordset aperto sul recorset della 
maschera tutti i record che hanno valori falsi vengono trasformati in veri, 
mentre se preme il pulsante annulla sempre tramite query o recordset vengono 
cancellati tutti i falsi dalla tabella.
Un'altra soluzione sarebbe di collegare la maschera ad una tabella provvisoria 
e nel momento in cui si apre la maschera di riempire la tabella provvisoria con 
i dati che inizialmente devono essere presenti (in questo caso si tratta di 
scarichi di righe di ordini, una riga può essere evase in più volte, quindi nel 
momento in cui si apre la maschera degli scarichi devono essere presenti quelli 
gia effettuati). Anche in questo caso nella tabella provvisoria ci deve essere 
un campo che distingua gli scarichi gia' effettuati dai nuovi.
Nel momento in cui l'utente preme il pulsante annulla non succederebbe in 
questo caso nulla, mentre se viene premuto ok tramite query o rst si 
introdurrebbero  i nuovi dati nella tabella originale.
Non sono riuscito a risolvere il problema tramite transazioni, in quanto quete 
funzionano solo su codice dao.
Aspetto consigli o soluzioni alternative.
Ciao a tutti  e grazie
Sandro

 ha scritto nel messaggio
news:8F886E4...@127.0.0.1...

Un'ipotesi potrebbe essere quella, tramite una routine a fronte dell'evento
"Prima di aggiornare" della sottomaschera, di chiedere conferma se si
desidera effettuare l'aggiornamento o l'inserimento, annullando
eventualmente tale evento. Il tutto funziona, però, intervenendo un record
alla volta.
Se l'intervento, invece, deve essere fatto su un gruppo di record
contemporaneamente, una soluzione potrebbe essere quella di effettuare gli
inserimenti in una tabella temporanea; quindi, tramite un pulsante di
comando (INSERISCI), utilizzando una query di accodamento, accodi i dati
della tabella temp a quelli della tabella originale e poi svuoti la tabella
temp; con un altro pulsante di comando (ANNULLA) svuoti solo la tabella
temp.
Che ne pensi?
Roberto

problema:
Piu' che altro un incoraggiamento: anch'io lavoro su tabelle
temporanee (locali) e mi trovo molto bene, non solo in
inserimento, ma anche e soprattutto in modifica.
--
Lorenzo Coronati
--
<<Io studio ing gestionale e dei non laureati 
che mi sputano in faccia mi faccio beffe.>>
(Andrea "Mr Bad Guy", 10/07/2000)
--

Ok, Lorenzo e Roberto  vi ringrazio per la risposta.
Ho risolto il problema con una tabella temporanea sul FE, in effetti  è  
probabilmente la soluzione migliore.
Ciao
Sandro