Newsgroup: it.comp.appl.access
Titolo: 'bloccare' uno o più record

Ciao a tutti.
In A97 ho una tabella così strutturata:
[matricola] chiave primaria;
[nome_prodotto] testo
[data_carico] data
[data_scarico]
...
Tramite una maschera immetto un prodotto con relativa data di carico e
tramite un'altra maschera posso immettere la data di scarico di un prodotto
precedentemente caricato.
Desidererei poter 'bloccare' il record relativo ad un prodotto scaricato
(nel senso che questo, pur rimanendo visibile, non sia più disponibile per
ulteriori cambiamenti), ma vorrei poter anche avere la possibilità di
annullare lo scarico di un prodotto tramite una specifica operazione.
Tutto questo allo scopo di evitare modifiche accidentali di un prodotto già
scaricato, pur avendo la possibilità (se effettivamente necessario) di poter
annullare lo scarico (magari fatto per errore) e scaricare il prodotto in
altra data.
Grazie anticipatamente.
Giancarlo.

 ha scritto nel messaggio
news:jNG_6.6924$bp5....@news1.tin.it...

Quello che ho capito è che tu vorresti che, se nel record hai inserito una
data in
[data_scarico], Access non ti permetta di fare variazioni su quel record;
nello stesso tempo ti serve di intervenire per poter cancellare tale data,
rendendo nuovamente tale record aggiornabile.
Se le cose stanno così e se il controllo associato al campo data_scarico si
chiama anche lui data_scarico, prova a generare a fronte dell'evemto "Prima
di aggiornare" della maschera con cui fai gli aggiornamenti della tua
tabella il seguente codice VBA:
Dim IntNuovo As Integer, strTitolo As String
Dim IntFinestraMsg As Integer, strMsg As String
If Not IsNull(Me!data_scarico.OldValue) Then
    If IsNull(Me!data_scarico) Then
        strTitolo = "Aggiornamento di un record scaricato"
        strMsg = "Vuoi veramente cancellare la data di scarico?"
        IntFinestraMsg = vbYesNo + vbQuestion
        IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        If IntNuovo = vbYes Then
            Me.Undo
            Me!data_scarico = Null
            strTitolo = "Aggiornamento di un record scaricato"
            strMsg = "E' stata cancellata la data di scarico," _
            & Chr(13) & Chr(10) & _
            "ma le altre variazioni sono state annullate"
            IntFinestraMsg = vbOKOnly + vbExclamation
            IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        Else
            Me.Undo
            Cancel = True
            strTitolo = "Aggiornamento di un record scaricato"
            strMsg = "Tutte le variazioni del record sono state annullate"
            IntFinestraMsg = vbOKOnly + vbExclamation
            IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        End If
        Exit Sub
    Else
        strTitolo = "Aggiornamento di un record scaricato"
        strMsg = "Hai tentato di variare un record scaricato" _
        & Chr(13) & Chr(10) & _
        "Tutte le variazioni sono state annullate"
        IntFinestraMsg = vbOKOnly + vbExclamation
        IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        Me.Undo
        Cancel = True
        Exit Sub
    End If
End If
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------