Newsgroup: it.comp.appl.access
Titolo: Registrazione dati alla chiusura del database.

Carissimi.
Alla chiusura dell'applicativo in Access2000 dovrebbe essere scritto su
un record di una tabella residente sul database server l'ora di fine
utilizzo dell'applicazione.
Ho notato che alcune volte questo dato non viene registrato nella
tabella di riferimento, molto probabilmente perchè  la chiusura del
database client, effettuato con il comando QUIT, precede l'operazione di
scrittura sul server, effettuata con il comando DoCmd.RunSQL "UPDATE
.........".
Si tratterebbe quindi, secondo me, di un problema di sincronismo di
operazioni e per risolverlo dovrei usare una transazione.
Vi chiedo se è giusta l'analisi del problema e come procedere.
Un grazie e un saluto a tutti.
Lino
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:2c2e9c22b6a38bf304...@mygate.mailgate.org...

Forse dovresti capire come viene chiuso il client quando non viene
registrata l'ora di chiusura ed impedire tale azione.
SunRex

 "UPDATE .........".
??
scambia le due istruzioni...
scherzi a parte, pare ovvio che la query viene eseguita alla chiusura del 
db.
ma di preciso, quando?
alla pressione del bottone esci, alla chiusura della maschera principale, 
alla chiusura di una maschera nascosta...
è previsto anche il caso in cui l'utente clicchi sulla x in alto a dx?
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------

 Lino
Io utilizzo sempre questo metodo per avere dati sui Login.
Credo dipenda da come realizzi l'intercettzione della Chiusura
di Access.
In pratica io per evitare questi problemi (Crack a parte) ho
eliminato i pulsanti di gestione della Form MDI di Access, e
faccio gestire il Logout tramite la Form Principale oppure tramite
Menů(Personalizzato).
Entrambi richiamano la stessa Funzione che Registra il Logout.
Non sň se ti sono stato utile.......!
@Alex.


Per completezza dell'informazione aggiungo che l'applicativo viene
chiuso dalla maschera principale sulla quale c'e' u tasto di chiusura
che ha il seguente codice sull'evento "Su click":
    Dim msgEsci As Integer
    msgEsci = MsgBox(vbCrLf & "Fine dell'uso dell'applicazione." &
vbCrLf & "Si desidera procedere nella sua chiusura?" & vbCrLf, 36, "
Fine lavoro")
    If msgEsci = vbNo Then Exit Sub
 
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE Tab_Login SET Tab_Login.DataOra_F = Now()WHERE
(((Tab_Login.Id_Login)=[forms]![MasterSfondo]![Id_Login]));"
    DoCmd.SetWarnings True
 
    DoCmd.Close
    DoCmd.Quit
    Exit Sub
La maschera è in popup ed ha il tasto di chiusura sulla barra di menu
controllo disabilitato per cui l'utente può solamente chiudere
l'applicazione dal tasto su indicato.


 (((Tab_Login.Id_Login)=[forms]![MasterSfondo]![Id_Login]));"
invece di inserire i dati così, hai provato a usare un recordset oppure 
usare una connessione ed eseguire una query sulla connessione, verificando 
poi il suo corretto completamento con StillRunning?


 poi il suo corretto completamento con StillRunning?
Potresti darmi gentilmente maggiori informazioni sull'uso dello
StillRunning??
Al limite facendomi un bell'esempio......
Grazie


 
siccome è una funzione che non uso granchè, ho anche sbagliato a scrivere 
il nome...
quello corretto è 
StillExecuting
è una proprietà di workspaces, connessioni e recordset odbcdirect.
ti rimando al solito mitico, unico, inimitabile (nonchè sempre 
disponibile) tasto F1...
