Newsgroup: it.comp.appl.access
Titolo: CASELLA COMBINATA un po' + pratica ??

salve a tutti, vi espongo "brevemente" il mio problema :
nella mia MASCHERA1  relativa alla TABELLA1
c'è una casella combinata che prende i valori
dalla TABELLA2.
quando devo mettere un nuovo valore trovandomi
nella  MASCHERA1 mi toccherebbe uscire, andare
ad aggiornare la TABELLA 2 e poi rientrare nella
mia MASCHERA1 per aggiornare finalmente il
dato incriminato : non mi sembra una gran comodità !
NEI MIEI SOGNI immetto il nuovo valore,  automaticamente
viene aggiunto nella TABELLA2, e assorbito nella casella
combinata.
qualcuno è forse in grado di indicarmi una soluzione che
si avvicini il + possibile alle mie esigenze (ma credo sia
il sogno di tanti).
in attesa di qualche utile suggerimento, ringrazio tutti 
per l'attenzione.
Mic.

 ha scritto nel messaggio
news:3c2e47f4...@news.libero.it...

penso che puoi mettere sulla tua maschera1 nell'evento dopo aggiornamento
Me.Miasellacombinata.Requery
e dovrebbe fare al caso tuo.
Max

 ha scritto nel messaggio
news:QDAX7.4985$s04.2...@news.infostrada.it...

Non credo il Requery sia sufficiente, anzi è l'ultima operazione da fare in
ordine di tempo...in questo caso...!
Devi usare la proprietà "Non in Elenco" della ComboBox ovviamente devi
settare la proprietà Solo in Elenco.
Inserisci questa Sub modificando i nomi della ComboBox e del Campo della
Tabella2 che deve essere aggiunto
****************************************************************************
*******
Private Sub TuaCombo_NonInElenco(NewData As String, Response As Integer)
   Dim rs as recordset
   Dim ctl As Control
   Set ctl = Me.TuaComboBox
   ' Richiede di verificare se si desidera aggiungere un nuovo valore.
   If MsgBox("Valore non presente nell'elenco. Aggiungere?", vbOKCancel) =
vbOK Then
       ' Imposta l'argomento Response per indicare che i dati vengono
aggiunti.
       Response = acDataErrAdded
       ' Aggiunge la stringa nell'argomento NewData a origine riga.
       set rs=currentdb.Openrecordset("Tabella2")
       rs.addnew
       rs.fields("NomeCampo")= NewData
       rs.Update
       rs.close
       set rs=nothing
   Else
       ' Se si sceglie Cancel, si elimina il messaggio di errore e si
annullano le modifiche.
       Response = acDataErrContinue
       ctl.Undo
  End If
End Sub
****************************************************************************
*******
Dovrebbe andare.....!
--
@Alex
*--------------------------------------------------------------------------*
Alessandro B.
Sito Comune      :   
http://www.sitocomune.com
Sito Personale   :   
http://digilander.iol.it/ik2zok/
*--------------------------------------------------------------------------*

 settare la proprietà Solo in Elenco.
Volendo si può simulare il comportamento del non in elenco in questo modo
sull'evento dopo aggiornamento del controllo scrivere
if isnull(dlookup("[campo]","tab","[campo]='" & new_value & "'")) then
  msgbox "Vuoi aggiungere?"
ecc ecc
Antonio

> >
[CUT]

BEL COLPO ALEX !
a parte qualche mio problema di interpretazione 
sulla scelta del controllo "solo in elenco" 
(funziona scegliendo SI)  l'istruzione funziona
a meraviglia.
proporrei quasi quasi di metterlo tra le faq del
sitocomune (ho visto che c'era già qualcosa di
simile ma non proprio ugale).
grazie ancora.
Mic.

 Mic.
Gli errori sono inevitabili...!
La soluzione di Antonio alla quale non avevo pensato è
altrettanto valida e molto più veloce...!
Per quel che riguarda postarla tra le FAQ, si potrebbe, ma
se guardi con l'help su NoninElenco vedi che è la stessa +/-.
Ciao @Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 altrettanto valida e molto più veloce...!
E' più veloce come realizzazione. Come performance, se la tabella dati della
combo è molto popolata, il fatto di rifare una dlookup potrebbe pesare...
Antonio