Newsgroup: it.comp.appl.access
Titolo: confermare il salvataggio dei dati ??

Ciao a tutti,per l'ennesima volta ritento la stessa domanda:vorrei avere la
possibilità di scegliere se salvare le modifiche effettuate in una maschera
( modificato o aggiunto record) riprendendo il classico funzionamento dei
programmi di windows..........alcuni mi anno chiesto del perchè questo odio
per l'autosave....la mia risposta è che secondo me è più comodo decidere se
salvare o meno le modifiche o aggiunte di record effettuate.......penso che
dipenda dall'uso che uno fa del db.
Spero vivamente in un vostro aiuto perchè non potrei mai lavorare sul mio db
(una volta finito) con l'autosave

Un modo è quello di scrivere del codice VBA
 Se ho capito bene vorresti avere una maschera con un pulsante che  ti
consente di salvare o meno i dati immessi.
Dovresti avere dei campi "non associati" ovvero senza alcun campo
"nell'origine di controllo". Allora quando deciderai di salvare i dati
dovrai aprire la tabella (tramite codice VBA) ed aggiungere i dati appena
letti.
Ciao


Se la richiesta e' uguale a quella precedente, forse non hai 
metabolizzato la risposta di Lorenzo Coronati, il quale, se non
ricordo male, ti ha consigliato di appoggiarti su una tabella
temporanea 
Non mi sembra che ci siano soluzioni alternative per un
salvataggio di massa.
Non so quanto sia grande il tuo DB ne' voglio entrare nel merito 
1) In partenza Scarichi tutto su tabelle di appoggio 
2) Fai le tue elaborazioni fino a quando decidi di salvare
3) Ripulisci le tabelle originali e ci riscarichi dentro il 
   nuovo elaborato
a questo potrei aggiungere
0) Controlli che le tabelle di appoggio siano vuote 
   se non lo sono qualcuno o qualcosa ha commesso una
   "bischerata" e puoi fare il ripristino
4) Ripulisci le tabelle di appoggio
--
a.cara

 ha scritto nel messaggio
news:9g1o9.13657$Fz.3...@news1.tin.it...

Se vai sul Sito Comune (link qui sotto), dopo aver letto  le FAQ che
seguono, scegli la tecnica che più fa al caso tuo:
1) Sezione Forms: Confermare il salvataggio dei dati di Federico Luciani
(form che non contiene subform)
2) Sezione General: Cosa sono e come funzionano le transazioni? di Sib
3) Sezione Forms: Semplice esempio della Gestione Automatizzata dei records
in una Form di Alessandro Baraldi
4) Sezione Forms: Annullare le modifiche apportate ai dati di una form con
subform di Luca Dall'Olio
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
3DA0B249...@blunet.it...


 chiusura della maschera.
Non esiste un metodo semplice per realizzare quello che tu chiedi.
Ciao. Claudio.

 chiusura della maschera.
per favore scrivi dopo  i riferimenti e taglia [cut] le parti che non
servono del messaggio a cui rispondi.
Piu' o meno quello che ti ho consigliato e' questo:
*******************************
Option Compare Database
Option Explicit
-----------------------------------
Private Sub Form_Open(Cancel As Integer)
Dim vLook As Variant
' 1) Controlla se sulla tabella temporanea (copiainv) ci sono records
vLook = DCount("*", "Copiainv")
If vLook = 0 Then
    ' 2) Tabella temporanea vuota inserisce ta tabella originale
    DoCmd.RunSQL "insert into copiainv select * from inventario"
Else
    ' 3) Tabella temporanea piena 
    MsgBox "Ripristino da elab. precedente"
End If
End Sub
4) Questo form deve avere l'origine dati sulla tabella temporanea
------------------------------------
5) Bottone di richiesta salvataggio
Private Sub Salva_Click()
    ' 5) Elimina i dati dalla tabella originale
    DoCmd.RunSQL "delete from inventario"
    ' 6) Riaccoda sulla tabella originale
    DoCmd.RunSQL "insert into inventario select * from copiainv"
    ' 7) Cancella i dati dalla tabella temporanea
    DoCmd.RunSQL "delete from copiainv"
    ' 8) Chiude il form
    DoCmd.Close
 
End Sub
------------------------------------------
9)  Bottone di annullamento operazioni
Private Sub Annulla_Click()
    10) ' Elimina dalla tabella temporanea
    DoCmd.RunSQL "delete from copiainv"
    11) ' Chiude il form
    DoCmd.Close
End Sub
*********************************************
N.B. i nomi delle tabelle usate "inventario" e "copiainv" sono nomi
di fantasia ogni riferimento a persone o cose e' casuale
--
a.cara

 wrote in message
9g1o9.13657$Fz.3...@news1.tin.it...

Dunque dunque dunque...
Anche io odio l'autosave di MSAccess...è sempre meglio confermare...
L'unico affidabile sistema è secondo me questo:
1) Creati la maschera con i campi della tabella...
2) Da ogni campo della maschera, cancella l'origine dati e mantieni invece
il nome del campo
3) Così avrai creato una maschera con campi non associati
4) Aggiungi un bel pulsantino e lo chiami "Salva"
5) Sull'evento click di "Salva" devi aprire un recordset sulla tabella,
aggiungere un record vuoto, popolarlo ed aggiornarlo
es.
Dim rst as recordset
Dim strmsg as string
Set rst = CurrentDB.OpenRecordset("TuaTabella")
rst.addnew
rst!Campo1=Me.Campo1
rst!Campo2=Me.Campo2
rst!Campo3=Me.Campo3
rst.Update
msgbox ("Record Salvato !)
set rst = nothing
Ciao !

 wrote in message
E4do9.58179$Eu.13...@twister1.libero.it...


 wrote in message
pLho9.61057$e31.1...@twister2.libero.it...


di fantasia ogni riferimento a persone o cose e' casuale
Mia nonna si chiama "Inventario" e mio bisnonno "Copiainv" indi per
cui inviami i dati della tua carta di credito e farň finta di nulla:-)
Mamma mia che faccia tosta usare nomi cosě comuni da queste parti :-)
Ciao. Fabrizio Me.txtCognome ( č il mio cognome per cui mi dovete le
royalties anche per questo )  :-) 
Ciao. Fabrizio

 Ciao e grazie
Quando rispondi, scrivi la tua risposta DOPO e non prima del testo dei
messaggi precedenti.
Per maggiori aprrofandimenti puoi cominciare a spulciarti l'help in linea e
capire gli arcomenti che help ti sottopone a fronte delle seguenti parole da
cercare:
- Transazione
- Transazioni
- BeginTrans
- CommitTrans
- Rollback
- UseTransaction
Non so invece consigliarti un libro specifico, ma penso che un qualsiasi
buon manuale che parli di VBA DAO dovrebbe fare al caso tuo.


buon manuale che parli di VBA DAO dovrebbe fare al caso tuo.
Vallo a trovare : io ne ho ordinato uno un mese fa e sono ancora qui
che aspetto.
Ciao. Fabrizio

Mi ero dimenticato di segnalarti un esempio molto ben fatto per risolvere il
tuo problema senza l'uso delle transazioni, che sicuramente non sono quanto
di più semplice da gestire con Access.
Vai sul Sito Comune (link qui sotto) e scaricati il database di esempi che
trovi allegato alla FAQ della Sezione Forms intitolata "Esempi di utilizzo
delle forms".
Apri il database scaricato e seleziona il Topic intitolato How to Undo or
Rollback Main Form and Subform Changes.
Pigiando il pulsante Show Example verrà aperta la maschera
frmUndoMain&Subform e potrai provare un esempio di ciò che ti serve.
Una dettagliata spiegazione di come è realizzato l'esempio la trovi al link:
http://support/microsoft.com/support/kb/articles/Q131/5/35.asp?PR=ACC



http://support/microsoft.com/support/kb/articles/Q131/5/35.asp?PR=ACC
Scusa Robè sei sicuro del link ? Non riesco ad aprire la pagina !!
Ciao. Fabrizio

 Ciao. Fabrizio



Figurati , grazie mille invece per il link , avevo già scaricato gli
esempi qlc giorno fa , adesso mi aiuterò con questo articolo ( sigh in
inglese ).
Ciao. Fabrizio


E' una regola del gioco; io, che di inglese ne mastico poco, nel mio PC
faccio sempre girare in back-ground il programma Babylon.exe che mi traduce
in tempo reale le parole che punto con il mouse.


in tempo reale le parole che punto con il mouse.
Come sei tecnologico ! :-) IO uso il Collins , ma a manina "santa" ;-)
Ciao. Fabrizio

 inglese ).
per una adeguata cifra posso sempre tradurtelo
--
a.cara

per una adeguata cifra posso sempre tradurtelo
Tu piuttosto ricordati che mi devi dei soldi per aver ingiustamente
citato due miei parenti : Inventario e Copiainv.
Per cui a gratis me lo devi tradurre.  :-))
Ciao. Fabrizio