IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - [RISOLTO] - Accessi e tracciamento
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[RISOLTO] - Accessi e tracciamento

 Post Reply Post Reply
Author
Message
cicciopastone View Drop Down
Utente Senior
Utente Senior


Joined: 02/Feb/2014
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote cicciopastone Quote  Post ReplyReply Direct Link To This Post Topic: [RISOLTO] - Accessi e tracciamento
    Posted: 13/Feb/2019 at 11:18
Buongiorno a tutti, spero mi possiate aiutare.
ho una tabella "accessi" con i campi: [ID], [stato], [ora], [Nomepc]
Nella maschera "menù" che di default si apre all'inizio, ho i seguenti VBA:

SU APERTURA:
Private Sub Form_Open(Cancel As Integer)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("accessi", dbOpenTable)
rst.AddNew
rst![stato] = "Collegato": rst![ora] = Now(): rst![Nomepc] = Environ("username")
rst.Update
rst.Close
End Sub

SU CHIUSURA:
Private Sub Form_Close()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("accessi", dbOpenTable)
rst.AddNew
rst![stato] = "Scollegato": rst![ora] = Now(): rst![Nomepc] = Environ("username")
rst.Update
rst.Close
End Sub

Il tutto funziona se la maschera "menù" e la tabella "accessi" sono nello stesso file ma io ho creato un Backend con le sole tabelle tra cui "accessi" e un Frontend con maschere tra cui "menù", query e report. Credo che il problema stia in quel "CurrentDb...", infatti, non appena apro il frontend mi esce errore debug evidenziando la riga CurrentDb..

Come posso fare per far in modo che i dati vengano scritti sulla tabella esterna collegata?

Grazie


Edited by cicciopastone - 14/Feb/2019 at 13:43
Back to Top
Sponsored Links


Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5536
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 13/Feb/2019 at 19:38
Non credo proprio il problema sia CurrentDB... ma hai Linkato correttamente le Tabelle...?
Se apri la Tabella Linkata dal FE, si apre... vedi i dati e sono EDITABILI...?

Se metti Now() come Valore di Default nel Campo della Tabella che registra l'ora non serve nemmeno passarlo...Wink


Edited by @Alex - 13/Feb/2019 at 19:38
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
cicciopastone View Drop Down
Utente Senior
Utente Senior


Joined: 02/Feb/2014
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote cicciopastone Quote  Post ReplyReply Direct Link To This Post Posted: 13/Feb/2019 at 20:45
Sì, il meccanismo funziona nel senso che se lascio la tabella accessi interna a FE, funziona.
Quando invece creo BE e FE, all'apertura di FE con tabella accessi collegata, vedo i dati e a mano li posso modificare ma dando FE errore all'apertura, nessun dato viene ovviamente registrato sulla tabella accessi in BE. 
Ho provato a mettere Valore Predefinito: Now() sul campo [ora]..

Ecco cosa esce da VBA:





Edited by cicciopastone - 13/Feb/2019 at 21:05
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5536
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 13/Feb/2019 at 21:07
Lascia stare la maschera... per un momento.
Apri la Linked table nel FE e prova a modificare i dati... se non si modificano o ottieni errori... devi ripristinare il Link al BE... che in pochi fanno... ma va cancellato alla chiusura e ricreato all'apertura del FE, e a prescindere rifatto se si modifica la struttura del BE.
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
cicciopastone View Drop Down
Utente Senior
Utente Senior


Joined: 02/Feb/2014
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote cicciopastone Quote  Post ReplyReply Direct Link To This Post Posted: 13/Feb/2019 at 21:34
Ok, ma quali sarebbero le operazioni da fare?
Ho provato a cancellare la tabella da FE e ricollegarla ripristinando il link, si apre e si potrebbe inserire in essa i dati ma all'apertura di FE, esce sempre errore..

Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 13/Feb/2019 at 23:56
Devi avere due file uno FronEnd (FE) ed uno BackEnd (BE) ove la tabella "Accessi" (in quest'ultimo) dovrà essere accessibile attraverso una collegamento. Prova ad accedere al FrontEnd quindi, in modo interattivo, crea (e  se esiste eliminalo e ricrealo di nuovo) il collegamento ai dati della tabella nel BackEnd).
Quindi (come ti  stato indicato) prova a modificare i dati della tabella (Accessi) accedendovi direttamente al fine di verificare che ci si possa aggiungere o variare le informazioni presenti.
Quando ciò funziona puoi pensare di implementare un sistema automatico (tramite codice VBA) che attivi il collegamento con le linked-table (alla apertura del FronEnd) in modo da accedere (ed aggiornare) la tabella "Accessi" nel BackEnd; ed, al termine della sessione, interrompere il collegamento delle linked-table in modo da assicurare un livello di sicurezza negli accessi.

 
Willy
Back to Top
cicciopastone View Drop Down
Utente Senior
Utente Senior


Joined: 02/Feb/2014
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote cicciopastone Quote  Post ReplyReply Direct Link To This Post Posted: 14/Feb/2019 at 08:12
Ma io avevo già fatto il BE e FE e già avevo ricollegato la tabella. Tale tabella si apre e si modifica.
Il problema sta che la riga "Set rst = CurrentDb.OpenRecordset("accessi", dbOpenTable)" dà errore all'apertura..

Ripeto che se anziché fare BE e FE, lascio tutto nello stesso file, il codice funziona..
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Online
Points: 5536
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 14/Feb/2019 at 09:01
L'unico metodo che non funziona con le Linked è il metodo SEEK, quindi le indicazioni che ti sono state fornite sono per orientarti a cercare in altra direzione...!

Tuttavia prova una cosa simile:
Set rst = CurrentDb.OpenRecordset("SELECT * FROM accessi", dbOpenDynaset)
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
cicciopastone View Drop Down
Utente Senior
Utente Senior


Joined: 02/Feb/2014
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote cicciopastone Quote  Post ReplyReply Direct Link To This Post Posted: 14/Feb/2019 at 13:43
Grazie @Alex! Ho provato e con la tua modifica funziona tutto! Cool

Quindi per chi volesse avere un BE e FE con tracciamento dei Login/Logout, il codice corretto è:

SU APERTURA:
Private Sub Form_Open(Cancel As Integer)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM accessi", dbOpenDynaset)
rst.AddNew
rst![stato] = "Collegato": rst![ora] = Now(): rst![Nomepc] = Environ("username")
rst.Update
rst.Close
End Sub

SU CHIUSURA:
Private Sub Form_Close()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM accessi", dbOpenDynaset)
rst.AddNew
rst![stato] = "Scollegato": rst![ora] = Now(): rst![Nomepc] = Environ("username")
rst.Update
rst.Close
End Sub


Chiudo e metto risolto! Grazie ancora!
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.