Discussione:
impostare "focus" su ultimo valore casella di riepilogo
(troppo vecchio per rispondere)
Thirdmillennium2001
2006-03-18 11:26:30 UTC
Permalink
Ciao. In un'applicazione creata in Access, i dati vengono filtrati (in
base alla selezione) e visualizzati in una casella di riepilogo presente in
una maschera.
Quel che vorrei ottenere è una cosa banale, ma non riesco a risolvere:
al click di un pulsante (per ora, giusto per prova) vorrei che venisse
selezionata di default l'ultima riga della casella di riepilogo
(l'equivalente di CTRL+Fine da tastiera, per capirci :-) ) e non la prima.
Le righe sono ordinate in ordine di data, ma il loro numero varia. Mi
basterebbe che fosse selezionata l'ultima riga.
Ringrazio in anticipo chi può consigliarmi modi per risolvere :-)

Se può essere utile nel proseguio, per farmi capire più facilmente:
- la maschera si chiama "riepilogo"
- la casella di riepilogo "elenco0"

P.S.: il messaggio è in x-post
Gabriele Bertolucci
2006-03-18 13:50:16 UTC
Permalink
Post by Thirdmillennium2001
al click di un pulsante (per ora, giusto per prova) vorrei che venisse
selezionata di default l'ultima riga della casella di riepilogo
(l'equivalente di CTRL+Fine da tastiera, per capirci :-) ) e non la prima.
Le righe sono ordinate in ordine di data, ma il loro numero varia. Mi
basterebbe che fosse selezionata l'ultima riga.
La prima tentazione sarebbe quella di impostare via codice la proprietà ListIndex
della combo con la seguente istruzione

Me.elenco0.ListIndex = Me.elenco0.ListCount - 1

ma si otterrebbe l'errore di runtime 7777, visto che tale prroprietà è di
sola lettura, nonostante l'help di Access sostenga il contrario.

Quindi, bisogna ripiegare su una soluzione leggermente più complessa, come
la seguente istruzione

Me.elenco0 = Me.elenco0.ItemData(Me.elenco.ListCount - 1)

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution
giorgio rancati
2006-03-18 14:03:32 UTC
Permalink
"Gabriele Bertolucci" <***@REMOVEpbsoft.it> ha scritto nel messaggio news:***@news.virgilio.it...
.
Post by Gabriele Bertolucci
La prima tentazione sarebbe quella di impostare via codice la proprietà ListIndex
della combo con la seguente istruzione
Me.elenco0.ListIndex = Me.elenco0.ListCount - 1
ma si otterrebbe l'errore di runtime 7777, visto che tale prroprietà è di
sola lettura, nonostante l'help di Access sostenga il contrario.
Ciao Gabriele,
diciamo che l'help di Access non è molto preciso ma l'esempio non è del
tutto errato se prima sposti il fuoco sulla casella di riepilogo o sulla
casella combinata.

----
Me.Elenco0.SetFocus
Me.Elenco0.ListIndex = Me.Elenco0.ListCount - 1
----

Ciao
--
Giorgio Rancati
[Office Access MVP]
Gabriele Bertolucci
2006-03-18 14:14:04 UTC
Permalink
Post by giorgio rancati
----
Me.Elenco0.SetFocus
Me.Elenco0.ListIndex = Me.Elenco0.ListCount - 1
----
Gotcha :-)

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution
Thirdmillennium2001
2006-03-18 20:02:42 UTC
Permalink
Post by Gabriele Bertolucci
Post by giorgio rancati
----
Me.Elenco0.SetFocus
Me.Elenco0.ListIndex = Me.Elenco0.ListCount - 1
----
Gotcha :-)
Ehm... li ho provati entrambi, ma questo non va... forse perché ci sono
altre operazioni che lo inficiano... mi dà appunto il 7777 di Televideo :-p
L'altro sistema invece, cioè:

Me.Elenco0 = Me.Elenco0.ItemData(Me.Elenco0.ListCount - 1)

va, però... com'è che mi seleziona (evidenziandolo) il primo rigo (in alto)
e non l'ultimo (in basso)? :-)
Può dipendere dal fatto che ci siano migliaia di voci? O sbaglio
qualcosa?
giorgio rancati
2006-03-18 20:29:28 UTC
Permalink
Post by Thirdmillennium2001
Ehm... li ho provati entrambi, ma questo non va... forse perché ci sono
altre operazioni che lo inficiano... mi dà appunto il 7777 di Televideo :-p
Me.Elenco0 = Me.Elenco0.ItemData(Me.Elenco0.ListCount - 1)
va, però... com'è che mi seleziona (evidenziandolo) il primo rigo (in alto)
e non l'ultimo (in basso)? :-)
Può dipendere dal fatto che ci siano migliaia di voci? O sbaglio
qualcosa?
difficile a dirsi, con 60.000 elementi in lista a me funzionano tutte e due
i metodi .
Prova a controllare meglio :)

Ciao
--
Giorgio Rancati
[Office Access MVP]
Thirdmillennium2001
2006-03-20 09:21:30 UTC
Permalink
Post by giorgio rancati
Post by Thirdmillennium2001
Ehm... li ho provati entrambi, ma questo non va... forse perché
ci sono altre operazioni che lo inficiano... mi dà appunto il 7777
Me.Elenco0 = Me.Elenco0.ItemData(Me.Elenco0.ListCount - 1)
va, però... com'è che mi seleziona (evidenziandolo) il primo rigo
(in alto) e non l'ultimo (in basso)? :-)
Può dipendere dal fatto che ci siano migliaia di voci? O sbaglio
qualcosa?
difficile a dirsi, con 60.000 elementi in lista a me funzionano tutte
e due i metodi .
Prova a controllare meglio :)
Ciao
Uff... va bene, proverò a "vivisezionare" un po' :-)

--
Uomo che lavora non cibba.
Thirdmillennium2001
2006-03-20 10:51:34 UTC
Permalink
Post by Thirdmillennium2001
Post by giorgio rancati
Post by Thirdmillennium2001
messaggio
Ehm... li ho provati entrambi, ma questo non va... forse perché
ci sono altre operazioni che lo inficiano... mi dà appunto il 7777
Me.Elenco0 = Me.Elenco0.ItemData(Me.Elenco0.ListCount - 1)
va, però... com'è che mi seleziona (evidenziandolo) il primo rigo
(in alto) e non l'ultimo (in basso)? :-)
Può dipendere dal fatto che ci siano migliaia di voci? O sbaglio
qualcosa?
difficile a dirsi, con 60.000 elementi in lista a me funzionano tutte
e due i metodi .
Prova a controllare meglio :)
Ciao
Uff... va bene, proverò a "vivisezionare" un po' :-)
Risolto: in "Colonna associata" della casella di riepilogo era impostata
una colonna uguale per tutti i campi! :-/
Grazie.

--
Uomo che lavora non cibba.
giorgio rancati
2006-03-20 11:04:49 UTC
Permalink
Post by Thirdmillennium2001
Post by Thirdmillennium2001
Uff... va bene, proverò a "vivisezionare" un po' :-)
Risolto: in "Colonna associata" della casella di riepilogo era impostata
una colonna uguale per tutti i campi! :-/
Grazie.
--
Uomo che lavora non cibba.
:-)
--
Giorgio Rancati
[Office Access MVP]
Loading...