Newsgroup: it.comp.appl.access
Titolo: IDENTIFICAZIONE DI CHI MODIFICA IL RECORD

Avrei bisogno del Vostro aiuto, ho un file in Access condiviso da piů
persone. A volte capita che vengono fatte delle modifiche e non si sa chi le
ha fatte. Partendo dal presupposto che non ci sono gruppi, ne' altri
controlli sugli accessi al file, potete indicarmi il modo piů semplice per
conoscere chi ha modificato il Record per ultimo? Mi risolvereste un
grossissimo problema.
Grazie mille!!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha fatte. Partendo dal presupposto che non ci sono gruppi, ne' altri
Io ti consiglio di :
creare un mdb con dentro la tabella che vuoi controllare con aggiunti i
campi data/ora e nome stazione.
connetterla al FE
nella maschera dove avviene la modifica/cancellazione creare una routine
sull'evento cancellazione e aggiornamento, che prima di eseguire, copia il
record originale sulla tabella di Log. Cosě ottieni non solo di sapere chi
ha effettuato l'operazione ma anche i valori prima della variazione.
saluti
Gustavo Bartolini


Sei proprio grande.
Perdona la mia ignoranza. Puoi darmi qualche dettaglio in piů... Te ne sarei
molto grato!!
Ciao


 Ciao
Mi devi, prima che si entri nel dettaglio, dare alcuni chiarimenti:
l'utente per accedere all'.mdb FE deve dare una password?
su quale S.O. lavorano?
suppongo il tutto sia in rete con mdb dati (BE) separato da mdb programmi
(FE)
quale versione di Access (97,2000,2002)?
come te la cavi col VBA?
saluti
GB


L'utente prima di entrare non inserisce nessuna Password. Alcuni utenti
hanno come S.O. Windows NT mentre altri Windows XP. Non so cosa voglia dire
mdb dati (BE) tantomeno (FE). Utilizziamo Access 97. Con VBA diciamo che non
sono pratico.
Sono proprio un disastro......
Puoi aiutarmi....? Sono recuperabile?
Grazie mille per il tempo che mi dedichi.
Grazie!!



Per favore dammi qualche aiuto in più.
Grazie.


Ho proprio necessità del vostro aiuto.
Per favore mi scrivete qualche suggerimento.....
Grazie mille!!


 Grazie mille!!
Per prima cosa il significato di FE e BE.
BE (Back End) sta a significare un database .mdb con dentro solo Tabelle,
che in una configurazione multiutente risiede abitualmente sulla macchina
server in una cartella condivisa.
FE (Front End) sta a significare un database .mdb contenente query,
maschere, macro e moduli che risiede abitualmente sulla macchina di lavoro
con le tabelle del BE collegate.
uno dei tanti vantaggi di questa configurazione: fai modifiche sui programmi
e se non modifichi le definizioni delle Tabelle basta copiare il nuovo .mdb
al posto del vecchio e va tutto a posto.
Ora passiamo al tuo problema:
Hai una tabella  di nome Prima con due campi Codice e Contenuto.
Da una maschera chiunque può entrare su un record e modificarlo.
come fare per tenere traccia dei cambiamenti?:
Per prima cosa crei una nuova tabella identica a Prima di nome Seconda.
Aggiungi a Seconda i campi DataOperazione e NomeStazione.
ti crei un modulo dove aggiungi una funzione di rilevamento del nome Host
( vedi sito comune )
crei una query di insert di tutti i campi di Prima + DataOperazione e
NomeStazione su Seconda.
Nella maschera da dove effettui le modifiche nell'evento [Prima di
Aggiornare] esegui la query.
A questo punto su Seconda avrai il record con i campi prima della modifica
con data e ora della modifica e da quale computer è stata fatta.
Se i tuoi utenti entrano con una password allora potresti rilevare anche il
nome utente.
spero di esserti stato utile
saluti
GB

Mi sei stato di grande aiuto, Lunedì proverò. Puoi spiegarmi anche dov'è
questo "Sito Comune" che ogni tanto trovo scritto?
Grazie mille!!

--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie mille!!
Il sito comune del Newsgrup č 
www.sitocomune.com
saluti
GB



--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:cagtt3$lug$1...@grillo.cs.interbusiness.it...

Perchč non gli spieghi anche che si scrive correttamente DOPO il quoting?!!?
Antonio

Fate ancora un piccolo sforzo....
Datemi ancora qualche aiuto!!

--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ciao e grazie.
Sicuramente lì troverai quello che ti serve ed anche altro.
Nel frattempo ti scrivo sotto il contenuto di una funzione presa dal sito
comune con cui puoi rilevare il nome del computer, la copi e la infili in un
modulo.
-------------
Option Compare Database
Option Explicit
Public Declare Function GetComputerName Lib "kernel32" Alias _
    "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Declare Function SetComputerName Lib "kernel32" Alias _
    "SetComputerNameA" (ByVal lpComputerName As String) As Long
Public Const MAX_COMPUTERNAME_LENGTH = 255
Public Const ERROR_INVALID_PARAMETER = 87
Public Function GetCompName() As String
    Dim lngRet As Long
    Dim lenStr As Long
    Dim NomeComputer As String
    NomeComputer = String(256, 0)
    lenStr = Len(NomeComputer)
    lngRet = GetComputerName(NomeComputer, lenStr)
    GetCompName = Left(NomeComputer, lenStr)
End Function
---------------------------------------------------------
Per quello che riguarda la query di insert intendo una query che inserisca
valori in una tabella prelevandoli da una maschera:
INSERT INTO NomeTabella ( CampoUno, CampoDue, CampoTre )
SELECT [Forms]![DoveStannoICampi]![CampoUno] AS Espr1,
[Forms]![DoveStannoICampi]![CampoDue]  AS Espr2,
[Forms]![DoveStannoICampi]![CampoTre] AS Espr3;
Ora dal tenore delle tue domande mi pare di capire che la tua esperienza di
Access e di programmazione in genere sia alquanto limitata, quindi ti
consiglierei di munirti di mauali di Access, di SQL e di VisualBasic e di
studiarteli.
Lì troverai oltre ai concetti di utilizzo una quantità di esempi che ti
potranno aiutare a capire.
saluti
GB

 Datemi ancora qualche aiuto!!
Quando scriverai DOPO il quoting!
Antonio