Newsgroup: it.comp.appl.access
Titolo: Creare un sistema di log completamente automatico e centralizzato.

Buon giorno a tutti,
mi permetto di riproporre alla vostra attenzione il quesito postato
ieri ma che non ha trovato -ad ora- soluzione (e che ho inserito anche
sul gruppo microsoft.public.it.office.access). Il problema riguarda
l'utilizzo della FAQ di Namor del SITOCOMUNE "5.22 Creare un sistema
di log completamente automatico e centralizzato". Ovvero il bug già
segnalato in precedenza si continua a manifestare nel momento in cui
rispondo NO alla prima cancellazione di record, non eseguendo così
ulteriori cancellazioni e, di conseguenza registrazioni sul file di
LOG.
Peraltro il bug propone in talune circostanze l'errore:
Errore di run-time '2046':
Comando o azione 'EliminaRecord' non disponibile
Mi sono permesso di riproporre il quesito nella speranza che vi possa
essere trovata soluzione, perché nel leggere i post occorsi nel tempo
sull'argomento, non mi sembra vi sia stato posto rimedio definitivo e
perché ne ho molto bisogno per completare il DB realizzato.
Ho Access 2003 ed ho inserito la routine all'interno di un DB e, per
utti gli altri eventi funziona egregiamente.
Grazie a tutti per l'attenzione.
Francesco

 Francesco
Perche' non esegui le istruzioni che ti interessano direttamente nella 
routine in cui fai le delete?
Tra l'altro gli eventi che citi (nell'altro post) puo' essere che non 
scattino.
--
ac

 ac
Scusa innanzitutto il ritardo con cui ti rispondo,
molto probabilmente mi sono espresso male nel post, ma il problema a
cui cerco soluzione è solo quello relativo alla acancellazione, visto
che tutti gli altri eventi funzionano perfettamente ... quindi avevo
solo necessità di individuare la soluzione al bug ...
grazie comunque per l'interessamento
Francesco

 Francesco
Avevamo discusso di quel problema, ed era stata proposta una soluzione che
sembrava funzionare. L'hai provata?
http://groups.google.it/group/it.comp.appl.access/browse_frm/thread/acb33a08ec676e8e?hl=it&lr=&rnum=1&prev=/groups%3Fas_ugroup%3Dit.comp.appl.access%26as_usubject%3Dbug%2520su%2520esempio%26as_uauthors%3Dnamor%26lr%3D%26hl%3Dit
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:gt8vg4$r8t$1...@news.newsland.it...

Non ho guardato il link...ma....io sinceramente uso quello che scrivesti tu 
tempo fa....e va alla stragrande....con qualche piccola modifica si pu� 
riportare poi il tutto all'interno di una tabella per un eventuale UNDO...
Grande Marco...non mi ci sono messo pi� di tanto ma il pi� grosso l'hai 
fatto tu!
Ciao
-- 
Roberto da Parma 

 Roberto da Parma
Ciao Roberto,
se posso permettermi, potrei conoscere quali sono le modifiche per
riportare poi il tutto all'interno di una tabella per un eventuale
UNDO...
questa sarebbe un'ulteriore modifica essenziale per il mio progetto
che permetterebbe di custodire le informazioni all'interno del DB che
è già protetto da pwd (BE) ...
Grazie molte per l'attenzione.
Francesco

 Roberto da Parma
Ciao Marco,
mi devo nuovamente scusare per il ritardo con cui ho letto la tua
risposta, ma ho avuto dei problemi con il computer.
Dunque avevo già provato la soluzione proposta a suo tempo e l’ho
applicata al tuo DB per verificarne il funzionamento ai fini della
soluzione al mio problema. In proposito ho riscontrato, innanzitutto,
che funziona (ma di certo non dovevo essere io a dirlo) in caso di
risposta negativa alla cancellazione di record, salvo che alla
immediata e successiva risposta affermativa alla cancellazione dei
record, accoda, nel file di LOG, anche le precedenti (false)
cancellazioni … poi ho provato ad importare le modifiche anche nel
nmio DB dove comunque all’evento di cancellazione continua a non
verificarsi la trascrizione dei dati nel file di LOG.
Preciso comunque che gli eventi di interesse associati alla maschera
sono:
Private Sub Form_Open(Cancel As Integer)
    Center Me
    AttivaLog Form
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
If MsgBox("Vuoi inserire una nuova coordinazione ?", _
        vbOKCancel) = vbCancel Then
        Cancel = True
    End If
End Sub
Private Sub Comando15_Click()
On Error GoTo Err_Comando15_Click
… mentre sul click del pulsante per la cancellazione dei record
associo il seguente controllo:
    Dim intRisposta As Integer
    MsgBox "ATTENZIONE ... !!! Verrà cancellato anche il relativo
files PDF dall'archivio.", vbCritical
    intRisposta = MsgBox("Sei proprio sicuro ?", vbYesNo + vbQuestion,
"Eliminare l'inserimento corrente ?")
    If intRisposta = vbYes And IsNull(Me.Path_Foto) Or Me.Path_Foto =
"" Then
        Me.Recordset.Delete
        Me.Recordset.MovePrevious
        Me.Refresh
    ElseIf intRisposta = vbYes And Not IsNull(Me.Path_Foto) Then
        Kill Me.Path_Foto
        Me.Recordset.Delete
        Me.Recordset.MovePrevious
        Me.Refresh
    End If
Exit_Comando15_Click:
    Exit Sub
Err_Comando15_Click:
    MsgBox Err.Description
    Resume Exit_Comando15_Click
End Sub
Ringrazio nuovamente per l’attenzione che vorrete rivolgere al mio
problema, al quale spero possa essere trovata una soluzione.
Francesco

 Roberto da Parma
Ciao Roberto,
se posso permettermi, potrei conoscere quali sono le modifiche per
riportare poi il tutto all'interno di una tabella per un eventuale
UNDO...
questa sarebbe un'ulteriore modifica essenziale per il mio progetto
che permetterebbe di custodire le informazioni all'interno del DB che
� gi� protetto da pwd (BE) ...
Grazie molte per l'attenzione.
Francesco
Non � cos� semplice Francesco...e soprattutto nemmeno cos� generale la 
scrittura del codice...
Per darti la via comunque dovresti prevedere una tabella i cui campi 
corrispondano a tutto ci� che ti serve per una query di accodamento.
nome tabella, campi, valori
all'eliminazione esegui prima l'accodamento in una tabella es. undelete 
recuperando magari da vba tutti i valori che ti occorrono.
Non � cos� immediata la cosa


 Roberto da Parma
Ciao Roberto,
innanzitutto grazie ... spulciando qua e la anche tra i news esteri ho
trovato un riferimento all'esempio su questo sito che è stato per me
illuminante ...
- 
http://www.rogersaccesslibrary.com/forum/forum_posts.asp?TID=399
"This sample illustrates one way to produce a simple audit trail table
containing: machine name, login name, user name (access security),
record number, field name, original value, new value, and a date/time
stamp. It tracks all changes made to a record in either the form or
subform. It also tracks when new records are inserted and when records
are deleted and the values of the deleted fields" ...
e con questo (riadattandolo alle mie esigenze) ho risolto proprio ieri
sera il problema ...
Grazie comunque a te, a Marco ed a tutti gli altri partecipanti al
news per l'attenzione ed il tempo che costantemente dedicate alla
soluzione dei continui problemi che si incontrano nell'odierno uso di
Access
Buona giornata
Francesco