PDA

Visualizza la versione completa : Account utente possono accedere allo stesso database più volte.


za5h
06-01-2010, 09:32
Salve a tutti
Ho un database fatto in access versione 2003. Avrei dei quesiti da porvi.
Come riesco ad aggiornare una maschera la quale riporta tutti i record presenti nella tabella con cui è collegata, ma che in verità me ne compaiono un 5 record, essendo bassa come maschera, ma proprietà della maschera, maschera continua? Mi spiego meglio. Gli utenti che aprono la stessa maschera dovrebbero registrare dei documenti e dargli un numero di protocollo, e fino a qua, nulla di strano, ma il problema nasce quando la stessa maschera si usa da più utenti contemporaneamente. Non è un problema di uso di record ma solo il fatto che user_1 che registra un documento con protocollo 15 diciamo, e user_2 che ha la stessa maschera aperta, che vuole registrare un nuovo documento, se la maschera non si aggiorna, cosa che vorrei che fosse fatta in automatico, non vedra il record nuovo (l’ultimo) che user _1 ha inserito, e cosi darà lo stesso protocollo a due documenti diversi. Vorrei anche riuscire a dare il numero di protocollo in automatico, e la cosa si risolverebbe con un campo contatore. Ma non è questo che voglio perché se entro dentro la maschera e inizio a registrare, poi lascio a metà, per diversi motivi, e poi chiudo, quel nr contatore sarà gia perso, e non avrò più protocolli consecutivi. Un’altra cosa nel database, visto che stavo parlando degli account, come mai riesco ad entrare con lo stesso account in questo database anche più volte. In realtà al momento ho 5 account, creati con impostazione guidata account, e dato poi le autorizzazioni appropriate. Gli account sono stati testati sulla stessa machina, non in diversi. Sarà questo il fatto di entrare con lo stesso account quante volte voglio? Mi spiego, se apro il database con user_1, e lo lascio aperto, poi apro di nuovo il database posso cmq di nuovo inserire user_1, e posso ripetere l’operazione n volte. Quello che voglio io, e che dopo che user_1 è entrato, non deve riuscire più ad entrare nel database, perché il database è gia aperto da questo utente; mi dovrebbe come messaggio: UTENTE ATTIVO o qualcosa del genere, no? Che ne dite?

Giuseppe_M
06-01-2010, 12:42
Per quanto ne so Access non è stato progettato per essere utilizzato da più utenti contemporaneamente, ad esempio non effettua un lock sui dati che un altro utente sta leggendo o aggiornando, per cui se entra un altro utente e contemporaneamente modifica lo stesso dato si rischia di rendere vano il lavoro dell'altro operatore, nonché di danneggiare i dati.

Si dovrebbero migrare i dati verso un altro database che permetta un controllo maggiore e far disegnare un'interfaccia web che permetta l'accesso controllato degli utenti. Che un utente riesca ad accedere più volte dipende da come si progetta l'applicazione, basterebbe annullare la validità della sessione nel momento in cui si verifica un nuovo accesso con la stessa coppia di user & password da un'altra postazione. Basterebbe un cookie con un ID univoco che cambia ad ogni login, ogni operazione di lettura e scrittura sul database andrebbe sottoposta alla verifica di questo ID: se non dovesse corrisponde più con quello del database, l'utente viene scollegato.

Per quanto riguarda il numero di protocollo sarebbe facile da realizzare: l'operatore apre un nuovo protocollo, l'applicazione in questa fase registra, in una tabella, l'assegnazione di un numero di protocollo ad un operatore e pone il protocollo in fase di editing.

La tabella che mostra tutti i protocolli potrebbe mostrare quelli aperti (in editing) e quelli completati. L'operatore potrebbe salvare i dati del proprio protocollo per continuare in un secondo momento, e riaprire l'applicazione successivamente senza aver perso nulla; una volta completato l'inserimento potrebbe assegnare lo status di completo e rendere accessibile agli altri operatori lo stesso protocollo.

za5h
07-01-2010, 12:32
Grazie Giuseppe_M.

Potresti essere più specifico riguardo a quello che mi hai detto sia per l’occount (cookie ID univoco), che per il protocollo. Per il protocollo alla fine, al momento già lo è cosi come dici, oppure cè qualche passo che non capisco. Il fatto è che la maschera non si aggiorna, che i dati si, appena si esce dal record, anche gli altri vedono dati aggionati, se modificati, ma non un record nuovo aggiunto, perche la maschera aperta dall’altro utente non è aggiornata.