Newsgroup: it.comp.appl.access
Titolo: Identificare chi modifica i record

Ciao a tutti,
lavoro con access 2003,i S.O. sono tutti Win Xp in una rete locale, il
db è suddiviso in BE e FE e l'operatore accede autenticandosi con
Login e Psw!
Il db contiene una trentina di tabelle e altrettante Forms,più o
meno!!
Avrei bisogno di tenere traccia dell'utente che modifica un record,la
data di modifica,memorizzare anche cosa modifica sarebbe il
massimo...!!
Avevo trovato tempo fa sul newsgroup una soluzione non male
che,ahimè,non trovo piu..!!!
Se non ricordo male avevo inserito nelle tabelle 3 campi che
memorizzavano NomeUtente,DataModifica,e forse il Nome Computer con i
relativi controlli nascosti nelle maschere che memorizzavano il dato
sull'evento Prima di Aggiornare!!
Sapete se è possibile e come memorizzare cosa si modifica in un campo
memo ad esempio?
Vi sembra una buona soluzione oppure ne conoscete una più efficiente??
Leggevo anche in altri post,di creare una tabella "storico" con la
traccia dei vari record modificati....ma duplicare 30 tabelle non vi
sembra un po eccessivo??
Vi ringrazio per le eventuali info.
Una buona giornata a tutti


Nel dettaglio, in base alla soluzione che pensavo di utilizzare,
aggiungevo una routine simile a questa nelle maschere:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me![DataModifica] = Now()
Me![UtenteModifica] = UserAttuale
Me!ComputerName = Environ("ComputerName")
End Sub
Aspetto cortesemente i vostri suggerimenti e opinioni
Grazie ancora

 Grazie ancora
Un file di log.
Leggiti la relazione di Marco Pizzamiglio in CISA1 "Uso di WithEvents e
RaiseEvent" al paragrafo 7 "Sistema di log automatico per maschere".
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 - Mostra testo tra virgolette -
Ciao intanto grazie per le info!
Gli sto dando un'occhiata e mi sembra la soluzione ideale per i miei
bisogni.
Ma è un tantino sopra le mie conoscenze di programmazione e volevo un
piccolo aiuto per capire dove vanno a finire le modifiche effettuate.
Come scritto nella relazione stavo vedendo l'esempio "Axx Esempio 3
WithEvents.mdb",ma sapreste dirmi dove vanno a finire le
modifiche,ovvero in quale file di testo?
Grazie mille attendo un aiuto

bizio ha scritto:


Ti passo pari pari quello che è scritto nelle istruzione del file su cui
si posiziona l'applicazione appena l'apri:
***
CONTENUTO
'=========
'
'Esempio di richiesta conferme su modifiche ed eliminazioni
'e log su file di testo di inserimenti/modifiche/cancellazioni,
'centralizzati intercettando gli eventi di maschere e sottomaschere.
'NB: richiede un riferimento alla libreria Microsoft DAO
'
'Salva sul file di testo 'LogDb.txt' nella stessa cartella del database:
'data e ora dell'operazione
'nome dell'utente, del PC e della maschera su cui si è svolta l'operazione
'azione svolta e dati:
'INSERIMENTI: registra tutti i dati del nuovo record inserito
'MODIFICHE: registra lo stato del record prima e dopo la modifica
'ELIMINAZIONI di uno o più record: registra i dati di tutti i record
eliminati
'
'Il db contiene una tabella 'Anagrafica'
'e tre maschere ad essa associate.
'USO:
'====
'
'apri una o più delle tre maschere 'Anagrafica'
'e prova ad inserire, modificare e cancellare record,
'poi cerca e apri il file di log 'LogDb.txt'
'che dev'essere nella stessa cartella del database.
***
Trovi pertanto il file LogDb.TXT nella stessa cartella del database.
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo tra virgolette -
Hai perfettamente ragione,scusami non me ne ero accorto!
Ora l'ho provato ed è veramente una soluzione a dir poco
geniale:intuitiva,semplice da utilizzare e molto funzionale,a me piace
moltissimo!
Grazie a te per le info e complimenti a chi l'ha ideato!!
Ne approfitto solo per chiedere un'altra cosa se posso!!
Dato che lavoriamo in rete ma non abbiamo un server, il db è diviso in
BE (è su un pc che fa da server) e vari FE nei pc, sai dirmi per
favore se nel log generato confluiscono tutte le modifiche di tutti
gli operatori??Oppure si genererà un file Log in ogni cartella di ogni
operatore dove risiede il FE?
A me servirebbe un unico file log...!!
Grazie mille e scusa se ne ho approfittato un pò:-)

 Grazie mille e scusa se ne ho approfittato un pò:-)
Devi modificare il codice affinché salvi il file di log in una posizione
comune, in una cartella condivisa in rete, altrimenti creerà distinti
files di log, uno su ogni PC nella cartella di ciascun FE.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
Supponendo di volere un LogFile unico nella posizione \\pippo\appoggio
in rete vevo provato a modificare questa stringa nella
Class_Initialize():
LogFile = Left(LogFile, Len(LogFile) - Len(Dir(LogFile))) &
"LogDb.txt"
(credo che sia questa da modificare per la destinazione del file)
in
LogFile = Left(LogFile, Len(LogFile) - Len(Dir(LogFile))) & "\\pippo
\appoggio\LogDb.txt"
ma non funziona!!
Mi potete aiutare per favore?

 Mi potete aiutare per favore?
Devi togliere i riferimenti alla cartella locale. Se il percorso è
fisso, semplicemente inseriscilo nella variabile:
  LogFile = "\pippoappoggioLogDb.txt"
La riga precedente (LogFile = CurrentDb.Name) diventa inutile, la puoi
togliere.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo tra virgolette -
Ok perfetto grazie mille
L'ho sostituito cosi e va bene
LogFile = "\\pippo\appoggio\LogDb.txt"
non l'ho ancora provato se è tutto ok con più pc che ci lavorano
simultaneamente...ma se me lo dici ci credo!!:-)
Ho tolto la riga "LogFile = CurrentDb.Name" come mi hai detto!
Ti faccio ancora i miei complimenti