Mettere il segno di spunta in automatico ad un campo di Tipo SI/NO.

Anonimo
2020-01-17T12:48:25+00:00

Buon pomeriggio a tutti.

Con il seguente codice vorrei poter mettere il segno di spunta in automatico ad un campo ( chiamato Conferma) di tipo SI/NO quando non è Flaggato, ma questo non accade ( cioè vorrei apparisse come quando ci fai click sopra)

Come devo modificare il codice per fare ciò.

Private Sub Conferma_AfterUpdate()

If Me.Conferma = False Then

   If MsgBox("FLAG OBBLIGATORIO PER AGGIORNAMENTO MAGAZZINO" & Chr(13) & _

      Chr(13) & "Vuoi Procedere?" & Chr(13) & "Si: Per confermare e aggiornare il magazzino" & Chr(13) & _

      Chr(13) & "NO: Per uscire e non Aggiornare", vbInformation + vbDefaultButton2 + vbYesNo) = vbNo Then

Me.Undo

Cancel = True

    End If

 Else

Me.Conferma = True

Me.AllowAdditions = False

End If

End Sub

Grazie per l'aiuto che vorrete darmi.

Ciao Nicola.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-01-17T14:08:46+00:00

ciao Nicola,

urca, hai ragione, sorry....prova come segue :

Option Compare Database

Option Explicit

Private Sub Form_BeforeUpdate(Cancel As Integer)

With Me

    If Not .conferma Then

        If VBA.MsgBox("FLAG OBBLIGATORIO PER AGGIORNAMENTO MAGAZZINO" & Chr(13) & _

                    Chr(13) & "Vuoi Procedere?" & Chr(13) & "Si: Per confermare e aggiornare il magazzino" & Chr(13) & _

                    Chr(13) & "NO: Per uscire e non Aggiornare", vbInformation + vbDefaultButton2 + vbYesNo) = vbNo Then

                    .Undo

                    Cancel = True

        End If

    Else

        .AllowAdditions = False

    End If

.conferma = True

End With

End Sub

ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-01-17T13:45:50+00:00

    Ciao Sandro, grazie come sempre per tutto.

    Ho fatto come tu mi consigli, ma non ottengo la spunta del campo booleano pur aggiungendo la parte in grassetto.

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    With Me

        If Not .conferma Then

            If VBA.MsgBox("FLAG OBBLIGATORIO PER AGGIORNAMENTO MAGAZZINO" & Chr(13) & _

                        Chr(13) & "Vuoi Procedere?" & Chr(13) & "Si: Per confermare e aggiornare il magazzino" & Chr(13) & _

                        Chr(13) & "NO: Per uscire e non Aggiornare", vbInformation + vbDefaultButton2 + vbYesNo) = vbNo Then

                        .Undo

                        Cancel = True

            End If

        Else

            .Conferma=true

            .AllowAdditions = False

        End If

    End With

    End Sub

    vedi immagini allegate.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-01-17T13:31:45+00:00

    Ciao Karl, accipicchia, hai ragione.

    Si intendo come lo hai postato tu il codice.

    Ho notato che il messaggio di conferma non mi viene visualizzato dopo che non ho più il focus sul campo Booleano.

    Al riguardo , non dovrebbe uscire il messaggio impostandolo su AfterUpdate() ? oppure su Focus attivo.

    Spero di essere stato chiaro Karl.

    Grazie per il tuo gentile aiuto.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-01-17T13:29:02+00:00

    ciao Nicola,

    vedrei meglio anche qui l'uso dell'evento before update della form :

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    With Me

        If Not .conferma Then

            If VBA.MsgBox("FLAG OBBLIGATORIO PER AGGIORNAMENTO MAGAZZINO" & Chr(13) & _

                        Chr(13) & "Vuoi Procedere?" & Chr(13) & "Si: Per confermare e aggiornare il magazzino" & Chr(13) & _

                        Chr(13) & "NO: Per uscire e non Aggiornare", vbInformation + vbDefaultButton2 + vbYesNo) = vbNo Then

                        .Undo

                        Cancel = True

            End If

        Else

            .AllowAdditions = False

        End If

    End With

    End Sub

    se il controllo conferma e' gia true non serve ribarlo nell'else discordo diverso invece per la proprieta' allowAdditions.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-01-17T13:14:24+00:00

    Salve,

    la sequenza degli If...Else sembra sbagliata. Credo che intendi:

    If Me.Conferma = False Then

        If MsgBox("FLAG OBBLIGATORIO PER AGGIORNAMENTO MAGAZZINO" & Chr(13) & _

           Chr(13) & "Vuoi Procedere?" & Chr(13) & "Si: Per confermare e aggiornare il magazzino" & Chr(13) & _

           Chr(13) & "NO: Per uscire e non Aggiornare", vbInformation + vbDefaultButton2 + vbYesNo) = vbNo Then

            Me.undo

            Cancel = True

        Else

            Me.Conferma = True

            Me.AllowAdditions = False

        End If

    End If

    La risposta è stata utile?

    0 commenti Nessun commento