Newsgroup: it.comp.appl.access
Titolo: Conferma salvataggio dati (ancora sigh...)

Un saluto cordiale a tutto il NG.
Io sono ancora qua con questo vecchio problema, ormai mi sto rassegnando....
Io ho una maschera di immissione dati la cui origine record è costituita da
una query ottenuta mediante un join tra due tabelle (relazione uno a molti).
Vorrei realizzare una situazione in cui, all'uscita dalla maschera, mi venga
chiesto se voglio salvare i dati oppure no (ad esempio se clicco su
chiusura).
All'interno della maschera vorrei creare anche un pulsante (di uscita ) che
al clic, prima di uscire dalla maschera, mi chieda se voglio salvare o meno
i dati.
Ho raccolto qualche indicazione, ma non essendo esperta di VBA sto
impazzendo.
Ho messo insieme (su indicazioni) il codice seguente, ma non riesco a capire
perchè se rispondo 'NO' al salvataggio dei dati, mi compare un messaggio che
mi dice che l'azione CLOSE è stata annullata e mi evidenzia in giallo la
DoCmd.Close dopo End If, mentre se rispondo 'SI, mi evidenzia in giallo una
riga di codice VBA dicendo 'Tipo non corrispondente'
Set rec = dbs.OpenRecordset("nome tabella",dbOpenDynaset),
ho provato a mettere il nome delle due tabelle (perchè le tabelle della
query sono due), ma niente da fare, ho provato ad inserire il nome della
query, ma mi dà sempre errore.
All'evento chiusura della maschera ho inserito il seguente codice:
dim result as integer
result = MsgBox(" Vuoi salvare i dati?", vbYesNo + vbInformation)
 If (result = 6) Then
Dim dbs As Database
Dim rec As Recordset
Set dbs = CurrentDb()
Set rec = dbs.OpenRecordset("nome
tabella",dbOpenDynaset)
With rec
.AddNew
!cognome= cognome
!nome= nome
!eta=eta
!datanascita=data_di_nascita
.Update
 end with
docmd.close
else
docmd.close
end if
 Dove sbaglio?????
Grazie in anticipo
Rita.

 una query ottenuta mediante un join tra due tabelle (relazione uno a
molti).
Forse non capisco io ...
Non mi risulta che il set di record che origina da una join sia aggiornabile
... Ma se dici che lo fai evidentemente non ho ben compreso il tuo post.
Però posso dirti che quei due docmd.close in fondo, se li hai messi
sull'evento chiusura, non funzionando perchè la mask è già in ... chiusura.
Probabilmente volevi mettere un rec.close per chiudere il recordset ...
OndaMax

 chiusura).
Dovresti dire di piu', per esempio perche' vuoi fare una cosa del genere.
Annullare delle operazioni gia fatte non e' mai una bella cosa.
Se hai delle tabelle che ricevono dei saldi, per esempio, corri il rischio
di perdere la sincronia.
La maniera migliore mi sembra lavorare su una tabella temporanea di
appoggio, alla chiusura della sessione, se il tutto ti piace, fai una query
che riversa dalla tabella temporanea a quella definitiva.
Anche se, ancora non capisco perche' non potresti pentirti in questa fase
dei dati che hai imputato.
E poi non so, in ambiente multiutente cosa succederebbe ai tuoi dati.
Insomma, il problema qual'e' e perche' vorresti annullare delle operazioni?

 ha scritto nel messaggio
news:PUZ68.8952$5M4.2...@twister2.libero.it...


 ha scritto nel messaggio
news:PUZ68.8952$5M4.2...@twister2.libero.it...


 ha scritto nel messaggio
news:FP%68.9304$5M4.2...@twister2.libero.it...

Innanzitutto ciao e grazie per la disponibilità.
Non so cosa dirti riguardo ai tuoi dubbi, ma io lavoro tranquillamente, in
una maschera, immettendo i dati relativi ai campi di due tabelle unite in
join in una query.
Ho apportato le correzioni che mi suggerisci, ma ottengo cmq un errore.
Infatti, se rispondo 'NO' alla domanda se voglio salvare i dati, mi dice che
'la variabile oggetto o la variabile del blocco Wiith non è impostata',
evidenziando in giallo la riga 'rec.close' dopo l'ELSE.
Se rispondo 'SI' alla domanda, mi dice 'Tipo non corrispondente' e questo mi
fa impazzire ancora di più, perchè non prende nè il nome della tabella
(dovrebbero essere due però le tabelle interessate) e nè il nome della Query
che ho come Origine Record.
Cmq grazie ancora
Ciao
Rita.

 ha scritto nel messaggio
news:T%578.10805$nI1.3...@twister1.libero.it...

Ciao e grazie per la collaborazione.
Ti dico subito che ora non mi interessa lavorare in ambiente multiutente, il
mio prg dovrà girare su un unico Pc.
Per quanto riguarda l'annullamento delle operazioni, io mi riferisco ad una
semplice maschera di immissione dati in cui, prima di salvare e passare
all'immissione del record successivo, mi chiede se voglio salvare i dati
immessi.
Ho un'altra maschera (di modifica) che invece mi consente di richiamare un
record scelto in una casella di riepilogo e che, prima di salvare eventuali
modifiche fatte ai campi, mi chiede appunto se voglio salvare le modifiche
fatte oppure no.
Queste sono le cose a cui mi riferisco.
Se puoi aiutarmi ti ringrazio.
Ciao Rita

 ha scritto nel messaggio
news:xG678.10863$nI1.3...@twister1.libero.it...

Ciao Gianni e grazie per la collaborazione.
Ho provato ad inserire le istruzioni che mi hai indicato, ma quando dico
'NO' al salvataggio, continua a salvarmi il record ugualmente.
Se dico 'SI' mi dice sempre 'Tipo non corrispondente' evidenziando la riga
che dovrebbe contenere il nome della tabella nel SET etc..
Sono già andata a veder nel Sito Comune, ma con le transazioni la cosa si
complica per me, non è facile riportare lo tutto il codice al caso mio,
bisognerebbe essere cmq esperti di VBA.
In ogni modo grazie.
Ciao Rita.

 Se rispondo 'SI' alla domanda, mi dice 'Tipo non corrispondente'
Prova a togliere dbOpenDynaset e lasciare solo il nome della tabella.
OndaMax