Newsgroup: it.comp.appl.access
Titolo: Aggiornamento ComboBox - 2 puntata

Ciao! 
 
prima di tutto volevo ringraziare Roberto per l'aiuto dato via Ng a
Ezio relativo a: Aggiornamento ComboBox 
 
Vorrei porre un questito.
 
Ho creato una maschera per l'introduzione dei dati contenente textBox
e una comboBox. come da istruzioni
Ho utilizzato l'evento NotInList per aprire una maschera secondaria
per l'introduzione di un nuovo record della tabella correlata.
Se l'utente chiude la seconda maschera tutto bene e aggiorno la
comboBox (.requery) e faccio visualizzare il nuovo dato.
 
come fare Se l'utente, aperta la seconda maschera, volesse chiuderla
senza salvare i dati?
con 
doCmd.close ,, asSaveNo
non funziona. 
 
oppure ho provato con l'autocomposizione a crearmi un pulsante annulla
record
    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
 
 
Vorrei annullare AddNew - come quando sei in tabella e ti posizioni
sul record nuovo digiti e poi premi ESC un o 2 volte e annulli
l'inserimento nuovo record.
 
con elimina record incappo in un errore nel requery della combo
 
Grazie anticipatamente
 
PFM
--
To reply please remove from e-mail 'xyz'- Per rispondere togliere 'xyz' dall'indirizzo e-mail.

 ha scritto nel messaggio
news:3bb89b5c...@news.interbusiness.it...

A fronte di quale evento della maschera effettui il requery della combo?
Comunque sia, prova ad andare sul Sito Comune (link qui sotto), sezione
General, e leggi la FAQ intitolata "Si può aggiungere un record alla tabella
che è origine riga di una casella combinata senza usare una maschera?".
C'è allegato un esempio, se ti va bene l'interfaccia utente usata, dovrebbe
risolvere il tuo problema, visto che fra l'altro non usa maschere di
inserimento; prima di eseguire l'inserimento in tabella del nuovo record
chiede conferma all'utente e si conporta di conseguenza; al limite potresti
fare altrettanto prima di aprire la maschera di inserimento.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


L'esempio del sito comune e' molto utile anche se forse sono obbligato
a utilizzare una maschera perche' ho molti dati da inserire es.
anagrafica cliente 
comunque l'evento della maschera principale
Private Sub miaCombo_NotInList(NewData As String, Response As Integer)
 ' per evitare il messaggio di Access in automatico "DATO NON IN
ELENCO"
 Response = acDataErrAdded
 'Response = acDataErrContinue
 
 Dim FormNuovoRecord As String
 FormNuovoRecord = "Maschera1"
 Me.ZPIPPO = NewData
 DoCmd.OpenForm FormNuovoRecord, , , , acFormAdd, acDialog, "GotoNew"
 '
 Me!miaCombo.Requery
End Sub



L'esempio del sito comune e' molto utile anche se forse sono obbligato
a utilizzare una maschera perche' ho molti dati da inserire es.
anagrafica cliente 
comunque l'evento della maschera principale
Private Sub miaCombo_NotInList(NewData As String, Response As Integer)
 ' per evitare il messaggio di Access in automatico "DATO NON IN
ELENCO"
 Response = acDataErrAdded
 'Response = acDataErrContinue
 
 Dim FormNuovoRecord As String
 FormNuovoRecord = "Maschera1"
 Me.ZPIPPO = NewData
 DoCmd.OpenForm FormNuovoRecord, , , , acFormAdd, acDialog, "GotoNew"
 '
 Me!miaCombo.Requery
End Sub


 ha scritto nel messaggio
news:3bb9c218...@news.interbusiness.it...

Se la maschera che contiene la combo si chiama Paperino.
A fronte dell'evento "Su non in elenco" di mia combo genera il seguente
codice VBA:
Private Sub miaCombo_NotInList(NewData As String, Response As Integer)
Me.ZPIPPO = NewData
DoCmd.OpenForm "Maschera1", , , , acFormAdd, acDialog, "GotoNew"
If Me!ZPIPPO = "" Then
    Me!miaCombo.SetFocus
    Me!miaCombo.Text = ""
    Response = acDataErrContinue
Else
    Me!miaCombo.Requery
    Response = acDataErrAdded
End If
End Sub
In Maschera1 inserisci un controllo nascosto chiamato Papera ed un pulsante
di comando (chiamato Comando6), che l'utente dovrà pigiare quando ha un
ripensamento e non vuole più inserire il record che ha cominciato ad
inserire.
A fronte dell'evento "Su corrente" di Maschera1 genera:
Private Sub Form_Current()
Me!Cognome = Forms!Paperino!ZPIPPO
Me!Papera = 0
End Sub
A fronte dell'evento "Su chiusura" di Maschera1 genera:
Private Sub Form_Close()
If Me!Papera = 0 Then
Forms!Paperino!miaCombo = Me!ID
Else
Forms!Paperino!ZPIPPO= ""
End If
End Sub
A fronte dell'evento "Su clic" del pulsante di comando genera:
Private Sub Comando6_Click()
Me.Undo
Me!Papera = 1
DoCmd.Close
End Sub
Naturalmente sostituisci i nomi Cognome e ID con i nomi reali dei tuoi
controlli di Maschera1.
Prova, dovrebbe funzionare.


Ti ringrazio!!!
Molto esauriente!
ho notato che nell'esempio di quanche mese fa hai modificato zPippo da
null a 0
Saluti
PFM
