Newsgroup: it.comp.appl.access
Titolo: testare evento in textbox

Ciao alla community.
 
In Access 2003 ho il seguente problema:
 
In una maschera ho alcuni textbox, dei pulsanti e una sottomaschera.
Prendiamo ad esempio TextBox1:
dopo aver modificato i dati esistenti o dopo aver inserito nuovi dati in TextBox1, questi dati devono aggiornare una o più righe della sottomaschera.
Ho perciò agganciato la routine di aggiornamento delle righe della sottomaschera su evento TextBox1.AfterUpdate.
Ora, se al termine dell'inserimento in TextBox1, clicco su uno dei pulsanti, vedo effettivamente aggiornarsi le righe in sottomaschera, ma non viene più lanciata la routine agganciata all'evento SuClick del pulsante premuto.
 
Ci ho sbattuto la testa, ma non cavo un ragno dal famoso buco...
 
Qualche suggerimento?
 
Grazie
Stefanone

 Ora, se al termine dell'inserimento in TextBox1, clicco su uno dei pulsanti, vedo effettivamente aggiornarsi le righe in sottomaschera, ma non viene più lanciata la routine agganciata all'evento SuClick del pulsante premuto.
 
Bene quindi la AfterUpdate della TextBox parte regolarmente quando esci dalla TextBox cliccando sul pulsante   
e questo è regolare ......
 
Tu lamenti che non viene eseguito il codice SuClik del pulsante
 
 
Ma devi dirci come minimo cosa fanno i 2 eventi  e in particolare cosa fa l'evento DopoAggiornamento che parte per primo
 
 
prova questo
[code]
Private Sub txtBox1_AfterUpdate()
MsgBox "Evento dopo aggiornamento"
End Sub
 
Private Sub btnCmd1_Click()
MsgBox "Evento su Clik"
End Sub
[/code]
 
Facci sapere

Bene, i dati immessi in TextBox1, sono i dati di una transazione finanziaria (un acquisto, un pagamento di fattura, un incasso, etc.).
A seconda di quanto immesso in TextBox1, vengono generate nuove righe in sottomaschera (maschere continue) o modificate righe esistenti.
Ovviamente fino a che il focus si trova in TextBox1, le righe in sottomaschera non si aggiornano.
Inoltre, a seconda del tipo di transazione finanziaria, voglio evidenziare la riga corrispondente in sottomaschera con un diverso colore, operazione effettuata a mezzo formattazione condizionale via VBA.
Per innescare l'evento "TextBox1_AfterUpdate" devo o avere un pulsante di conferma delle immissioni (sistema secondo me macchinoso), oppure spostare il focus fuori da TextBox1.
Potrei certamente cliccare in uno degli altri TextBox, ma la reazione più naturale è di cliccare su uno dei pulsanti.
In effetti ne ho più di uno, da "Aiuto", che apre una finestra di aiuto in linea, a "Dettagli transazione", che apre una maschera di dettaglio (data transazione, mezzo di pagamento o incasso, documenti coinvolti, etc.) fino a "Uscita", per chiudere la maschera principale e tornare al menu.
 
Ogni volta che immetto dati o modifico TextBox1 e al termine dell'editazione sposto il focus da TextBox1 a (
p.es
.) "Dettagli transazione", tutte le operazioni codificate nella subroutine TextBox1_AfterUpdate vengono eseguite correttamente, ma devo poi ripremere il pulsante una seconda volta, perchè le istruzioni di TextBox1_AfterUpdate hanno la precedenza e la chiamata di Sub plsDettagliTransazione_Click()viene persa.
La medesima cosa avviene per tutti gli altri pulsanti.
 
Non so se esista un altro metodo per convalidare le immissioni in TextBox1 senza spostare il focus da TextBox1 stesso.
 
Ho provato "su disattivato", "su uscita", "su modifica", ma tutti questi eventi richiedono la validazione dei dati immessi.
Temo proprio di dovermi rassegnare a creare un ulteriore pulsante "Conferma immissioni".
 
Scusa se mi sono dilungato, ma volevo che il problema fosse ben chiarito.
 
Attendo tuoi commenti o suggerimenti.
 
Ciao
Stefanone