Newsgroup: it.comp.appl.access
Titolo: Come 'collegare' eventi esterni ad una sub/funzione vba?

Ormai siamo invasi dal mondo delle chat, dall'onnipresente whatsapp alle 
chat coi messaggi che si autodistruggono dopo 10 secondi come sui file 
con Tom Cruise
Tutti questi sistemi lavorano 'abbonandosi' ad un argomento/chat e 
rispondendo a degli eventi che sono relativi a quegli argomenti/chat
E quindi non e' il programma ad interrogare di continuo il server dei 
messaggi ma e' il server messaggi che 'informa' il client che e' 
disponibile un nuovo messaggio per lui
Bene, la domanda e':  come fare da codice vba interno a programma Access 
a rispondere ad un evento esterno?
Ad esempio il mio db server, ogni volta che nella tabella 'incassi' 
arriva una nuova riga 'avverte' i client che si sono 'abbonati' a questa 
informazione (aggiunta riga su tabella Incassi) che l'evento e' 
accaduto, poi ogni postazione se lo gestira' un po' come crede
In generale, come fare per 'associare' una sub o una function del codice 
di un programma Access ad un evento esterno?
(per semplicita' potremmo prendere whatsapp e 'rilevare' l'aggiunta di 
un nuovo messaggio su un certo corrispondente)
Chiedo questo perche' sto cercando di far leggere ad una procedura 
Access dei messaggi che arrivano su un server mqtt autocostruito, ma 
dopo estenuanti ricerche non sono riuscito a trovare un riferimento 
vba-mqtt neanche a pagarlo oro
 
 
 


Mah, secondo me devi andare alla vecchia: Timer e doevents da programma Client per andar a leggere periodicamente sul Server che c'è di nuovo.
 
Saluti
 
 
 


No
E' proprio il polling che voglio evitare
Vorrei ottenere una funzionalita' 'ad eventi' e non interrogando 
ciclicamente
I motivi principali sono:
 
1 - il computer farebbe una quantita' di operazioni che nella maggior 
parte dei casi sono inutili, appesantendo tutta la procedura inutilmente
 
2 - la reattivita' agli eventi esterni non sarebbe ottimale, voglio dire 
che se il ciclo del programma che gestisce l'evento dura 1 secondo, la 
frequenza che puoi dare all'interrogazione e' diciamo dai 5 secondi in 
su, cosi' facendo hai gia' la cpu al 20% (1 secondo ogni 5 il programma 
gira a manetta nella sua ricerca di nuovi eventi) ed una reattivita' da 
tartaruga perche' mal che vada il programma si 'accorge' 5 secondi dopo 
dell'evento accaduto e lo gestisce
 
E comunque e' di un'eleganza pari ad un red-worm della California
Senza offese per i red-worm chiaramente
 
L'idea dell'attesa evento al posto dell'interrogazione mi e' venuta 
vedendo questo esempio (e quindi se adesso vi rompo le scatole e' colpa 
anche dell'autore di quell'articolo)
 
https://github.com/adarshmadrecha/MSAccess-Firebase-Integration/blob/master/Tools/Asynchronous_HTTP_Request_Class
 
 
che descrive l'avvio di una funzione (una get/post via http), la 
definizione di un evento da richiamare al completamento della funzione, 
e la prosecuzione del flusso di codice senza 'attendere' la fine delle 
operazioni funzione avviata
 
Se e' possibile farlo (intendo definire una funzione che risponde allo 
scatenarsi di certi eventi) con una procedura da codice vba, magari e' 
possibile farlo anche per eventi che arrivano "dall'esterno" tipo un db 
server che ti avverte che qualcuno ha aggiunto righe su una certa 
tabella (vedi 'Eventi per Firebird' ma credo ci siano un po' per tutti i 
db server seri)
 
Fin qua ho immaginato io
Adesso pero' datemi un aiutino voi, perche' non saprei da dove iniziare
 

 I motivi principali sono: 
 
(cut)
 
Voglio, voglio, voglio ... e se non puoi?
 
Saluti
 


Beh insomma, proprio voglio voglio no
Vorressi, voletti, vorrebbi
Dici che nin ze po' andare per eventi?