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

Ciao,
 c'e' qualcuno che mi direbbe il codice da scrivere per aggiornare un
controllo in una maschera?
Non vorrei usare
 Me.recalc
perche' nella maschera ci sono tanti controlli.....
P.S. Sapreste dirmi se e' possibile realizzare controlli di forma differente
da quelli standard, in particolare, dei pulsanti di forma poligonale.....
Grazie.
Michele.

perche' nella maschera ci sono tanti controlli.....
Immagino che il controllo sia calcolato e quindi si deve aggiornare da solo
Antonio

 da quelli standard, in particolare, dei pulsanti di forma poligonale.....
Il metodo più facile è di crearti graficamente il pulsante (una bitmap, dei
rettangoli colorati ecc.) e gestirti l'evento On_click in modo da simulare
l'abbassamento del pulsante (questo dipende da come l'hai creato) e poi
richiamare la funzione associata.
Il metodo più difficile consiste nel fare il SUBCLASSING del controllo, cioè
aggiungi metodi e proprietà personalizzate all'oggetto, quindi puoi decidere
anche come si deve ridisegnare. La cosa è fattibile conoscendo la teoria che
ci sta dietro (intercettazione e processo dei msg generati dalle finestre) e
prevede un uso abbastanza intenso di API, non so se è il caso.
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://volftp.tin.it/italiani/galletta/
per scaricare un gioco di DAMA ITALIANA
*************************************************

 Immagino che il controllo sia calcolato e quindi si deve aggiornare da
solo
Purtroppo cio' non succede, si tratta di un controllo il cui valore viene
calcolato da Dcount, e' inserito in una intestazione di una maschera che e'
impostata con visualizzazione Maschere continue. In sostanza tale controllo
viene aggiornato solo quando inserisco un nuovo record oppure utilizzando
recalc (associato all'evento che puo' cambiare il valore di Dcount).
Come posso fare?
Michele.

 se non è basato su una query vera e propria
Ho provato ma c'è un problema di tempi! Eseguendo recalc la modifica che
eseguo fa a tempo ad essere considerata da Dcount. Mentre usando requery,
dal momento che l'evento al quale è associato, modifica il risultato di
Dcount questa modifica non fa a tempo ad essere considerata da Dcount
stessa! Penso di essere stato completamente incomprensibile  :-(
Grazie comunque.
Michele.

...

Non è possibile, riprova a spiegarlo
Antonio

> Non č possibile, riprova a spiegarlo
Ci provo :-)
Ho una maschera con visualizzazione continua, sull'intestazione c'e' un
controllo il cui valore e' dato da una funzione Dcount. Questa funzione
conta quanti dei record sottostanti hanno una "checkbox=on". Io vorrei che
ad ogni clic su una di queste checkbox la Dcount venisse ricalcolata. Se uso
recalc su clic va tutto bene, pero' ho un notevole "sfarfallio" dovuto alla
visualizzazione continua. Se uso requery la modifica viene "vista" solo
quando vado a modificare una seconda checkbox (come se non riuscisse a stare
dietro alla modifica!), allora ho provato ad inserire un refresh prima di
requery e cosi' funziona, pero' si ripresenta lo sfarfallio anche se meno
accentuato.
Forse cosi' sono un po' piu' chiaro.
Michele.

 prevede un uso abbastanza intenso di API, non so se è il caso.
No infatti!
Grazie.
Michele.

...

Sě.
Allora,  a parte il fatto di utilizzare docmd.echo false, rimettendolo a
true alla fine dell'aggiornamento, cosa che ti dovrebbe evitare lo
sfarfallio, tutto ciň accade perchč tu esegui il codice all'evento clic del
controllo, quando il valore associato non č stato ancora aggiornato.
E infatti la recalc forza gli aggiornamenti su tutti  i controlli.
Prova ad associare il codice al'evento dopo aggiornamento del controllo!!!
Antonio

 accentuato.
Il problema è che finchè il record non viene salvato (passando ad un altro
record), il Dcount considera lo stato della checkbox non aggiornato.
Prova con un
RunCommand acCmdSaveRecord
prima del requery del controllo.
Questo forse però ti fa ripartire la maschera continua dal primo record.


 Prova ad associare il codice al'evento dopo aggiornamento del controllo!!!
In effetti cosi' lo sfarfallio si limita all'intestazione e non piu' a tutta
la serie di record.
Grazie.
Michele.