Newsgroup: it.comp.appl.access
Titolo: Maschera popup non associata automaticamente

Ho una maschera ed una sottomaschera in foglio dati. Cliccando su un record 
della sottomaschera apro una maschera popup corrispondente al record della 
sottomaschera che ho cliccato per editare il record.
Fino qui ci sono. Quello che vorrei è che modificando i valori, alla 
chiusura della popup venisse chiesto se salvare le modifiche, cioè vorrei 
che non fossero accettate automaticamente.
Qualcuno sa indicarmi come fare?
V.

On 28 Apr, 13:46, "Valery From The Mountain" <val...@invalid.inv>
wrote:

Non hai letto l'Help...? ;-)
Apri la Form(pupup) in modalità acDialog... a quel punto il cidice
lato SubForm o chiamante viene interrotto, fai seguire al comando
OpenForm il comando Me.Requery ed ottieni quello che chiedi.
@Alex

 OpenForm il comando Me.Requery ed ottieni quello che chiedi.
Non ho capito molto bene quello che dici.
Ora la maschera la apro semplicemente con docm.openform "miaform", poi ho 
messo sulle proprietà della form che deve essere popup ed a scelta 
obbligatoria. E si apre come serve a me.
Inoltre, quello che capisco che dici di fare tu, è un requery della maschera 
chiamante, a me invece serve di chiedere di salvare le modifiche prima di 
chiudere la popup. Il requery della chiamante viene dopo. Sempre se ho 
capito bene...
Grazie comunque per la risposta.
V.


Dando l'impressione di essere "sveglio" mi limito a:
msgbox, dirty, undo.
-- 
ac
y-1=x

 V.
Scherzi a parte... se apri l'help vedi che tra le opzioni di OpenForm
c'è la penultima che definisce la modalità di apertura:
Sub OpenForm(FormName,
              [View As AcFormView = acNormal],
              [FilterName],
              [WhereCondition],
              [DataMode As AcFormOpenDataMode =
acFormPropertySettings],
 ------>     [WindowMode As AcWindowMode = acWindowNormal],
              [OpenArgs])
Se leggi le costanti associate alla WindowMode trovi anche
acDialog...
Quello che non mi torna è che in teoria avresti dovuto anche passare
la stringa al parametro [WhereCondition] per definire quale Record
andare a prendere...
In ogni caso dovrebbe funzionare così:
DoCmd.OpenForm "NomeForm", , , "NomeCampo=" & Me!ControlloAssociato, ,
acDialog
' Se apri la Form dal Button nella SubForm
Me.Requery
' Se apri la Form dal Button della Form Principale
' Me!NomeSubForm.Form.Requery
I parametri:
"NomeCampo=" & Me!ControlloAssociato
stanno ad indicare alla form da aprire di filtrare il Recordset con il
solo campo che corrisponde al criterio in questione, che nel tuo caso
dovrebbe essere la ChiavePrimaria o un campo Indicizzato... ma non so
come tu hai gestito il tutto.
Questa è la teoria(e pratica) corretta...
@Alex

 Questa è la teoria(e pratica) corretta...
Forse non mi sono spiegato bene....:-)
Non cerco come aprire la maschera ad un determinato record, questo già l'ho 
fatto. Cerco un modo per fare sì che una volta aperta la maschera, se 
vengono fatte delle modifiche, al momento della chiusura (prima del requery 
della maschera chiamante), ci sia la possibilità di annullare le modifiche. 
In pratica, cosa fare se al msgbox vbokcancel viene scelto cancel.
V. 

 V.
Mi ero perso un pezzo...
La cosa la devi fare prima di chiudere la Form(pupup)... quindi
potresti provare ad intercettare nella Popup l'evento BeforeUpdate che
verrebbe generato prima di Unload e su quello gestire il MsgBox.
A quel punto provi a forzare il Cancel e il Me.UNDO
Per farlo lato Form chiamante, l'unico modo è di non chiudere
realmente la Popup ma di renderla NON VISIBILE intercettando l'Unload
e forzando il VISIBLE=False
quindi dalla form chiamante gestisci il MsgBox e l'eventuale
Forms!NomePopup.Undo
E' da provare... io ho sempre gestito questa situazione lato Popup...
@Alex