Newsgroup: it.comp.appl.access
Titolo: Aggiornamento ComboBox

Vorrei aggiornare una casella a discesa(combobox) basata su una
tabella esistente, nel caso si volesse inserire un record non presente
in tabella.
Esiste un sistema non troppo complesso?
p.s. ho cercato sul "sito comune" ma non ho trovato l'indicazione
cercata.
Grazie a tutti
Ezio

 Ezio
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Ho sfruttato questo suggerimento per il mio db, ma mentre funziona
perfettamente
per l'evento "su doppio click", non succede nulla sull'evento "non in
elenco".
Dove sbaglio? (Ho seguito alla lettera ciň che hai scritto.
Grazie in anticipo.
PdA


Devi impostare a Si la proprietą "Solo in elenco" della casella combinata;
secondo me tu ce l'hai impostata a No.


 Devi impostare a Si la proprietà "Solo in elenco" della casella combinata;



Prova a sostituire
Response = acDataErrContinue
con
Response = acDataErrAdded
Inoltre se Maschera1 ha i seguenti controlli:
1) ID associato al campo contatore della tabella
2) Nome associato al campo di tipo testo e dove digiti la descrizione da
aggiungere nell'elenco della MiaCombo
Se la maschera che contiene la MiaCombo si chiama Maschera2.
Se MiaCombo č una casella combinata a 2 colonne.
A fronte dell'evento "Dopo aggiornamento" del controllo Nome di Maschera1
genera il seguente codice VBA:
[Forms]![Maschera2]![MiaCombo] = Me!ID


Sei un grande...
Ma ora mi torna un "errorino" antipatico (quello con la nuvoletta con una i
nel mezzo) che dice:
Il testo immesso non corrisponde ad una voce dell'elenco.
Selezionare una voce dall'elenco oppure immettere del testo che corrisponda
ad una delle voci elencate. [OK]
Questo errore me lo dà quando si ritorna dopo l'inserimento della nuova voce
della ComboBox
e dopo avere dato l'ok scegliendo proprio il valore appena inserito
dall'elenco tutto funziona bene.
E' normale così?
Posso togliere questo avviso?
Grazie
PdA


No, non č normale, ma non riesco a spiegarmi perché ti succede.
La finestra di avviso con la nuvoletta ti appare quando digiti qualcosa
nella casella combinata non in elenco o quando fai doppio clic sulla casella
combinata?
Comunque riepilogando, nell'evento "Su non in elenco" devi generare il
codice VBA:
DoCmd.OpenForm "Maschera1", , , , acFormAdd, acDialog, "GotoNew"
Me![MiaCombo].Requery
Response = acDataErrAdded
a fronte dell'evento "Su doppio clic" devi generare solo:
DoCmd.OpenForm "Maschera1", , , , acFormAdd, acDialog, "GotoNew"
Me![MiaCombo].Requery
A mio avviso é sbagliato il codice VBA che hai messo a fronte dell'evento
"Dopo aggiornamento" oppure Mia Combo č a 1 colonna anziché a 2 colonne, nel
qual caso il codice VBA in questione dovrebbe essere:
[Forms]![Maschera2]![MiaCombo] = Me!Nome


 [Forms]![Maschera2]![MiaCombo] = Me!Nome
Ho trovato il problema e non te lo dico gnanca perchè mi vergogno....
cmq ora funzia tutto bene, sono contento, però mi viene da chiederti
un'altra cosa:
è possibile fare in modo che una volta scritto sulla MiaCombo un qualcosa
non in elenco,
venga automaticamente scritto sulla maschera che si apre automaticamente
senza ridigitarlo?
non so se mi sono espresso bene....
Grazie
PdA

 PdA


Allora ve lo dico...
smanettando col codice per riuscire ad adattarlo alla mia applicazione,
ho eliminato quanto fosse stato scritto dentro alle parentesi della parte
iniziale
di codice per farmi capire (Newdata as String, cancel as integer), e non mi
ricordavo cosa c'era esattamente scritto prima di cancellarlo.
Allora ho dovuto eliminare e rifare in modo da ricreare da zero la
routine... e ce l'ho fatta.
A parte questo... esultooo perchè quello che mi hai insegnato .........
funzionaaaaa....  ;-))
Grazie mille grazzie grassie
PdA