Newsgroup: it.comp.appl.access
Titolo: Workaround Trigger Table possibile?

Come fare nella maniera meno dispendiosa e più affidabile per verificare che il valore di una campo di una determinato record di una tabella è stato modificato?
Il DB è in rete e vi accedono più utenti in modo condiviso.
Ho la necessità di notificare in una form che uno fra i tanti utenti ha modificato un record in particolare (tabella contenente un solo record!).
Access 2016 - Win 10.
Devo per forza utilizzare evento timer sulla form interrogando ogni tot millisecondi un look up su quel record?
Gli eventi tabella (almeno per me) a partire dalla 2010 sono una ciofeca.
Lo scopo è quello di tenere sincronizzare su una form constantemente aperta determinate informazioni ed eseguirne altre (apertura chiusura pdf, ecc.)
Grazie
Danieòe

Ciao Daniele, argomento interessante... quanto complesso.
 
I dati vengono modificati sempre dal CLIENT, e la possiblità di triggerare le modifiche non esiste.
Peraltro l'utilizzo in MultiUtenza è evidente che renda impossibile rilevare Elementi da Client esterni.
 
Suppongo, ma non ho minimamente idea di come fare, che Access un modo lo abbia, in quanto se 2 utenti sono sul medesimo Record, il primo che modifica rende visibile l'edit dello stesso record agli altri client in quanto sul SELETTORE RECORD appare il DIVIETO di chi è in READ se si definisce la modalità Pessimistica.
 
Purtroppo NON ho mai capito come rilevarlo, se non appunto come dici tu ciclando.
 
Ora dal momento che non ti serve sapere se il RECORD è in EDIT, ma se è già stato modificato, forse ti basta introdurre un Campo DataUltimaModifica e lato CLient aggiornarla su BEFOREUPDATE e di conseguenza testare solo quella essendo MONORECORD dovresti essere garantito e semplificare il tutto...
 
Ora da quì probabilmente ottimizzare il come farlo del margine si trova... magari una FORM Hidden che cicla 5000ms leggendo la dataultima modifica e la confronta con quella letta la volta precedente... e rilancia un Evento a sua volta se si verifica...
 
Purtroppo non ho altro... consapevole di non aver aggiunto nulla.
 
@Alex


Però mi hai fatto venire un'idea da testare.
Se aprissi una form hidden e istanziassi a livello modulo classe finestra un oggetto ADODB.Recordset With Event? Potrei scrivere due righe di codice sul'evento RecordChangeComplete?
Potrebbe essere un'idea! Da testare in multiutenze e soprattuto valutare se è stabile... In passato ho avuto crash con gli eventi adodb.recordset.
Grazie ancora
Daniele

Si ma non credo possa lavorare lato Server intercettando Azioni di TERZI... 
Ho il dubbio che la classe restituisca EVENTI dell'oggetto istanziato... da te.
 
Boh non saprei, rimango in ascolto.
 
@Alex


Credo proprio che non funzionerebbe. Già! Non serve a niente se imposto la CursorLocation a adUseClient, allo scopo serve adUseServer
Quindi niente da fareeee! 
Grazie

Il giorno lunedì 31 ottobre 2016 16:38:16 UTC+1, @Alex ha scritto:

Ho preso spunto da Imposta Variabile Locale per gli eventi tabella impostandola ad una Public Function. Come previsto l'evento viene scatenato correttamente e la funzione chiamata pure... Ma... in condivisione la funzione non viene richiamata se un altro utente ha modificato quella tabella. Indi?! Non ho risolto nulla. 
Daniele