Newsgroup: it.comp.appl.access
Titolo: Re: aggiornamento controlli dopo eliminazione record

 Grazie per l'aiuto
Ciao!
Non sono sicuro di aver capito, quindi provo a riassumere la sequenza.
Hai una form con un combo, una subform, altri due controlli.
Nel combo scegli se eliminare il record che sta nella subform.
Dopo l'eliminazione dovresti dovresti impostare la visibilita' degli
altri due controlli che sono nella form.
E' corretto?
Popi

 e i controlli che si devono aggiornare sono nella form
Allora provo a rivoluzionarti il gioco
Se nella finestra Strumenti/Opzioni/ModificaTrova la casella
"Modifiche record" e' spuntata, adatta il codice sotto.
Private Sub Form_AfterDelConfirm(Status As Integer)
    Select Case Status
        Case acDeleteOK
            MsgBox "La cancellazione è stata eseguita."
        Case acDeleteCancel
            MsgBox "La cancellazione non eseguibile."
        Case acDeleteUserCancel
            MsgBox "Cancellazione annullata."
    End Select
    Me.Parent.uno.Visible = Not Me.Parent.uno.Visible
    Me.Parent.due.Visible = ((Me.CurrentRecord / 2) =
Int(Me.CurrentRecord / 2))
End Sub
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As
Integer)
    Response = acDataErrContinue
    Cancel = (MsgBox("Confermi l'eliminazione di questo record?",
vbYesNo + vbDefaultButton2 + vbCritical, "") <> vbYes)
End Sub
Private Sub Form_Delete(Cancel As Integer)
    MsgBox "Sto passando per la delete", vbOKOnly + vbInformation
End Sub
Se, invece, la casella "Modifiche record" non e' spuntata, il codice
da adattare e' questo.
Private Sub Form_Delete(Cancel As Integer)
    Cancel = (MsgBox("Confermi l'eliminazione di questo record?",
vbYesNo + vbDefaultButton2 + vbCritical, "") <> vbYes)
    Me.Parent.uno.Visible = Not Me.Parent.uno.Visible
    Me.Parent.due.Visible = ((Me.CurrentRecord / 2) =
Int(Me.CurrentRecord / 2))
End Sub
HTH
Popi

 suppongo nella sottomaschera
E' satto! :)
Popi

 vero?
No, nessuna delle due! :)))
Quelle due righe le ho inserite per simulare l'accendi/spegni di due
controlli in base a condizioni pseudocasuali, cosi' da darti un codice
completamente testato.
Dovrai quindi sostituire "uno" e "due" in "me.parent.uno" e
"me.parent.due" con i nomi dei controlli che sono nella tua form e
mettere dopo il "=" le reali condizioni in base alle quali i tuoi
controlli si devono accendere/spegnere.
Popi

     Mentre durante l'esecuzione ho errore 438 (vedi segnalazione)
Dando per scontato che la tua "MiaForm" contiene i controlli Nero,
Bianco, Nero22 e Bianco22 *e la subform in cui stai eseguendo il
codice*, quel che ti serve e':
Me.Parent.Nero.Visible = blnFlag
Me.Parent.Bianco.Visible = Not blnFlag
Me.Parent.Nero22.Visible = blnFlag
Me.Parent.Bianco22.Visible = Not blnFlag
A scanso di equivoci ripeto: il codice
    Me.Parent.uno.Visible = Not Me.Parent.uno.Visible
    Me.Parent.due.Visible = ((Me.CurrentRecord / 2) =
Int(Me.CurrentRecord / 2))
che ho usato io serve solo da esempio e nulla ha a che vedere con quel
che serve a te!
Popi

 Poi (Me.CurrentRecord / 2) non capisco a cosa serve
A te non serve ad una benamata mazza, se mi perdoni il francesismo :)
Popi

 dammi un'ulteriore indizio
Rileggi il thread e ripeti con me:
- ho una maschera con una sottomaschera e 4 controlli
- nell'evento della sottomaschera ho del codice
- nel codice mostro e nascondo i 4 controlli in base a sequ
Se tutto questo e' vero, posta tutto il codice dell'evento che hai
messo nella sottomaschera e vediamo di capirci qualcosa.
Se, per contro, ho detto qualcosa che non va, posta tutto il codice
dell'evento che hai messo nella sottomaschera e spiega le differenze,
che vediamo di capirci qualcosa.
Popi

 e non so proprio metterci le mani.
Temo (spero per me) che tu ti stia perdendo in un bicchier d'acqua :)
Se nella finestra Strumenti/Opzioni/ModificaTrova la casella
"Modifiche record" e' spuntata, adatta il codice sotto.
Private Sub Form_AfterDelConfirm(Status As Integer)
    Dim blnFlag As Boolean
    If (Status = acDeleteOK ) Then
        blnFlag=DLast("Inserito", "TbDettaglio")
        Me.Nero.Visible = blnFlag
        Me.Bianco.Visible = Not blnFlag
        Me.Nero22.Visible = blnFlag
        Me.Bianco22.Visible = Not blnFlag
    End If
End Sub
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As
Integer)
    Response = acDataErrContinue
    Cancel = (MsgBox("Confermi l'eliminazione di questo record?",
vbYesNo + vbDefaultButton2 + vbCritical, "") <> vbYes)
End Sub
Se, invece, la casella "Modifiche record" non e' spuntata, il codice
da adattare e' questo.
Private Sub Form_Delete(Cancel As Integer)
    Dim blnFlag As Boolean
    If (MsgBox("Confermi l'eliminazione di questo record?", vbYesNo +
vbDefaultButton2 + vbCritical, "") <> vbYes) Then
        Cancel = True
    Else
        blnFlag=DLast("Inserito", "TbDettaglio")
        Me.Nero.Visible = blnFlag
        Me.Bianco.Visible = Not blnFlag
        Me.Nero22.Visible = blnFlag
        Me.Bianco22.Visible = Not blnFlag
    End If
End Sub
HTH
Popi

 se si, come?
Se l'argomento della discussione cambia e' buona norma iniziare un
nuovo thread.
Popi

 ora spiegami cos'è!
Cos'e' ... cosa ???
Popi

 - Mostra testo citato -
E' il parametro che (come puoi trovare anche nell'help di Access)
indica l'esito della cancellazione e viene passato all'evento
Form_AfterDelConfirm
Popi

 funziona benissimo.
Difficile dirlo, senza sapere che codice stai usando.
Prova a postarlo e vediamo se si riesce a cavare il proverbiale ragno
dal buco.
Popi