Discussione:
Valore Predefinito ComboBox
(troppo vecchio per rispondere)
p***@tim.it
2006-11-02 16:54:37 UTC
Permalink
Come faccio a fare sì che una combo box di una maschera abbia come valore
predefinito il primo della lista dei suoi possibili valori? In buona
sostanza, apro la maschera, e vorrei che la combo non fosse vuota (anche se
aprendo la tendina compaiono tutti i valori), ma vissualizzasse già il
primo. So farlo tramite VBA andando a leggerlo dalla SQL cui si riferisce
tramite DAO e impostando il valore desiderato, ma questo comporta che, se
faccio un requery (il rowsource, infatti dipende da un'altro combobox) non
funziona più....

Mi spiego meglio: ho ComboBox_A e ComboBox_B (a cui in fase di load della
form imposto il RowSource con una SQl che richiama ComboBox_A). Se cambio il
valore di ComboBox_A, con un Requery, ComboBox_B cambia la sua lista di
valori. Ora se il valore da visualizzare lo imposto nella routine di load
della form, al momento del requery, di lì non ci passo più! Dovrei dunque
impostare all'inizio che il DefaultValue di ComboBox_B non è un valore ma
una formula, ma non so come impostarlo nella finestra delle proprietà!

--------------------------------
Inviato via http://arianna.libero.it/usenet/
Roberto dal portatile
2006-11-03 15:11:46 UTC
Permalink
Post by p***@tim.it
Come faccio a fare sì che una combo box di una maschera abbia come valore
predefinito il primo della lista dei suoi possibili valori? In buona
sostanza, apro la maschera, e vorrei che la combo non fosse vuota (anche se
aprendo la tendina compaiono tutti i valori), ma vissualizzasse già il
primo. So farlo tramite VBA andando a leggerlo dalla SQL cui si riferisce
tramite DAO e impostando il valore desiderato, ma questo comporta che, se
faccio un requery (il rowsource, infatti dipende da un'altro combobox) non
funziona più....
Mi spiego meglio: ho ComboBox_A e ComboBox_B (a cui in fase di load della
form imposto il RowSource con una SQl che richiama ComboBox_A). Se cambio il
valore di ComboBox_A, con un Requery, ComboBox_B cambia la sua lista di
valori. Ora se il valore da visualizzare lo imposto nella routine di load
della form, al momento del requery, di lì non ci passo più! Dovrei dunque
impostare all'inizio che il DefaultValue di ComboBox_B non è un valore ma
una formula, ma non so come impostarlo nella finestra delle proprietà!
Vai sul Sito Comune (link qui sotto) e nella Sezione Forms leggi la mia FAQ
intitolta "3.111 Selezionare da VBA la riga di una casella combinata".
--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------
PBsoft
2006-11-03 15:24:31 UTC
Permalink
[omissis]

Supponendo che la combobox si chiami cboTest, il codice che ti serve è il
seguente:

Me.cboTest.DefaultValue = Me.cboTest.ItemData(0)

===
"Liberalizziamo l'elenco dei CAP"
http://www.petitiononline.com/freecap/petition.html
===

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution
p***@tim.it
2006-11-05 13:37:00 UTC
Permalink
Post by PBsoft
[omissis]
Supponendo che la combobox si chiami cboTest, il codice che ti serve è il
Me.cboTest.DefaultValue = Me.cboTest.ItemData(0)
Non mi sono spiegato bene: se faccio così, il DefaultValue sarà ciò che al
momento del caricamento sarà contenuto in Me.cboTest.ItemData(0). Se però,
attraverso l'evento requery aggiorno la lista dei valori disponibili per
Me.cboTest, il DefaultValue non verrà aggiornato, a meno di non far girare
nuovamente la troutine VB!

--------------------------------
Inviato via http://arianna.libero.it/usenet/
PBsoft
2006-11-06 14:27:30 UTC
Permalink
Post by p***@tim.it
Post by PBsoft
Me.cboTest.DefaultValue = Me.cboTest.ItemData(0)
Non mi sono spiegato bene: se faccio così, il DefaultValue sarà ciò
che al momento del caricamento sarà contenuto in
Me.cboTest.ItemData(0). Se però, attraverso l'evento requery aggiorno
la lista dei valori disponibili per Me.cboTest, il DefaultValue non
verrà aggiornato, a meno di non far girare nuovamente la troutine VB!
Concordo pienamente, ma non vedo niente di male ad inserire questa riga di
codice anche a seguito del requery della combo.
Io sono sempre stato per la razionalizzazione del codice, ma si tratta pur
sempre di una sola riga!!!

===
"Liberalizziamo l'elenco dei CAP"
http://www.petitiononline.com/freecap/petition.html
===

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution
p***@tim.it
2006-11-07 10:19:12 UTC
Permalink
Post by PBsoft
Concordo pienamente, ma non vedo niente di male ad inserire questa riga di
codice anche a seguito del requery della combo.
Io sono sempre stato per la razionalizzazione del codice, ma si tratta pur
sempre di una sola riga!!!
E' vero, ma forse mi sfugge qualcosa: io, ad un certo punto del codice
(anzi, più di uno), invoco la Requery della maschera che contiene la
ComboBox, percui, ad ogni istruzione Form.Requery dovrei far seguire la riga
di set del DefaultValue, dato che, mi pare, non esista un evento del tipo
AfterRequery della Combo o della Form, dico bene?


--------------------------------
Inviato via http://arianna.libero.it/usenet/
PBsoft
2006-11-07 15:16:09 UTC
Permalink
Post by p***@tim.it
E' vero, ma forse mi sfugge qualcosa: io, ad un certo punto del codice
(anzi, più di uno), invoco la Requery della maschera che contiene la
ComboBox, percui, ad ogni istruzione Form.Requery dovrei far seguire
la riga di set del DefaultValue, dato che, mi pare, non esista un
evento del tipo AfterRequery della Combo o della Form, dico bene?
Ni.

Quando fai il requery della maschera non vai a modificare il valore predefinito
della combo, quindi non ti serve fare il requery della combo.

Il requery della combo ha senso solo quando modifichi l'origine riga della
combo stessa.

===
"Liberalizziamo l'elenco dei CAP"
http://www.petitiononline.com/freecap/petition.html
===

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

Loading...