Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Blocco record access
giovedì 27 marzo 2008 - 16.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sangel972
Profilo
| Newbie
3
messaggi | Data Invio:
gio 27 mar 2008 - 16:10
salve, sempre io
dovrei fare in modo che un'utente, dopo avere inserito i dati su un record, possa dare una conferma, magari con un controllo, e poi non possa più modificare ciò che ha inserito.
potete aiutarmi?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 27 mar 2008 - 20:35
>salve,
Ciao!
>dovrei fare in modo che un'utente, dopo avere inserito i dati
>su un record, possa dare una conferma, magari con un controllo,
>e poi non possa più modificare ciò che ha inserito.
>potete aiutarmi?
Con access, a mio avviso, questa è una logica che va gestita applicativamente. Mi spiego. Se devo far inserire un record e poi, dopo particolari eventi ed al verificarsi di alcune condizioni, bloccare la modifica, ragionerei con un campo stato.
Ipotizza di avere una tabella che contiene un elenco di documenti ufficiali, i quali, dopo un determinato periodo, devono essere archiviati e dichiarati immodificabili. Predisporrei un campo STATO che definisce il livello di accesso al record.
Ad esempio, 1 = modificabile, 2 = archiviato. E ogni operazione di modifica non è consentita se lo stato è uguale a 2.
Fisicamente sono due tabelle, quella dei documenti con l'idstato e quella degli stati con la descrizione degli stati per il documento.
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
sangel972
Profilo
| Newbie
3
messaggi | Data Invio:
ven 28 mar 2008 - 15:06
la tua idea mi sembra ottima.
puoi spiegarmi come potrei fare a metterla in pratica? magari con un'esempio?.
grazie 1000 per la tua pazienza
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 28 mar 2008 - 15:17
>la tua idea mi sembra ottima.
>puoi spiegarmi come potrei fare a metterla in pratica? magari
>con un'esempio?.
E' decisamente una cosa lunga
. Implica sia la scrittura di codice che la creazione di tabelle a database.
Posso instradarti dicendo che devi fare aggiungere un campo Stato (numerico, o carattere lungo uno, vedi tu) nella tabella che vuoi "bloccare".
Una volta fatto ciò, tutti i record nuovi che inserisci li metti ad uno stato iniziale (ad esempio 1, il tuo corrispondente di "attivo").
Quando decidi che il record sia immodificabile (ad esempio il messaggio di conferma di cui parlavi) fai una update su quel record (per chiave quindi) impostando lo stato a "bloccato" (ad esempio 2).
Ogni query che estrae i record modificabili avranno nel filtro un "WHERE Stato = 1". In questo modo renderai visibili solo i "liberi dal blocco". Dove invece devi visualizzare indistintamente i record bloccati e non, togli la condizione di filtro.
>
>grazie 1000 per la tua pazienza
figurati, per ora prova ad implementare il tutto.
Noi siamo qui.
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
TOPOAMORE
Profilo
| Expert
695
messaggi | Data Invio:
ven 28 mar 2008 - 22:55
Ciao
Crea un pulsante di conferma dove quando verra cliccato andra a settare un campo stato (si/no in Access) aal'interno della tabella e con un conseguente refresh della maschera.
sulla maschera vai ad attivare l'evento su corrente e fai fare una verifica sul bit stato. se tale bit sara true il dato sara immodificabile altrimenti si puo modificare
esempio
evento su corrente
if bitStato=true then
me.allowedit.enable=false
end if
evento click su coferma
me.bitstato=true
me.refresh
Ciaooo e fammi sapere
cuogia
Profilo
| Newbie
1
messaggi | Data Invio:
dom 30 set 2012 - 08:40
Un saluto a tutto il forum!!!
Riprendo questo post xchè mi sembra possa essere quello che cerco però ho qualche problema e chiedo un aiutino:
Ho creato database per registrare le entrate del pubblico presso l'azienda dovo lavoro.
I campi sono data e ora accesso,cognome,nome,ora uscita ed ora conferma.
Ho bloccato la possibilità di modificare i dati quando il record è stato completato e si passa al successivo con AllowEdits=false in VBA, però adesso il problema è questo:
Se vi sono più personein entrata devo per forza cambiare record e quindi una volta che escono il campo ora_uscita è bloccato e non si può più modificare.
La soluzione proposta dal post è ottima però non riesco a farla funzionare:
ho aggiunto in tabella il campo conferma sì/no con formato vero/falso
ho aggiunto nella maschera il campo conferma
nel codice ho inserito:
Private Sub conferma_Click()
Me.conferma = True
Me.Refresh
End Sub
Private Sub Form_Current()
If conferma = True Then
Me.AllowEdits = False
End If
End Sub
se lascio bitstato come nell'esempio mi riporta l'errore: Errore di compilazione impossibile trovare il metodo o il membro dei dati
se cambio con conferma mi blocca tutte le caselle sia che sia true sia che sia false.
P.S. la voce me.allowedit.enable=false mi riporta un errore Errore di compilazione impossibile trovare il metodo o il membro dei dati
per questo l'ho cambiato con Me.AllowEdits = False
Dov'è l'errore...
Grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !