Msgbox OK e ANNULLA

Anonimo
2014-02-17T16:53:08+00:00

Ciao a tutti

Su una maschera ho una casella di controllo che mi attiva e disattiva la visualizzazione di record. Premendo accidentalmente la casella di controllo non mi accorgerei che ho disattivato un record. Vorrei che sull'evento clic un msgbox mi avverta su che cosa stia facendo.

Sull'evento clic Ho questo codice inserito:

Private Sub Attiva_Allievo_a_Click()

Dim Msg, Style, Title, Help, Ctxt, Response, MyString

Msg = "Premendo SI disattiverai l'allievo. Vuoi continuare?"

Style = vbYesNo + vbCritical + vbDefaultButton2

Title = "MsgBox Demonstration"

Help = "DEMO.HLP"

Ctxt = 1000

Response = MsgBox(Msg, Style, Title, Help, Ctxt)

If Response = vbYes Then    ' User chose Yes.

    MyString = "Yes"    ' Perform some action.

Else    ' User chose No.

    MyString = "No"    ' Perform some action.

End If

DoCmd.RunCommand acCmdSaveRecord

DoCmd.RunCommand acCmdRefresh

Forms!CSDG.Requery

Forms!CSDG.Refresh

End Sub

Il problema è che se premo sul pulsante NO succede la stessa cosa che accade con SI. Vorrei che premendo sul pulsante NO venisse bloccata la procedura?

E se volessi visualizzare il Campo "CognomeNome" al posto della parola "allievo" nel MSGBox come potrei fare?

grazie in anticipo

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
2014-02-17T17:06:24+00:00

 

Il problema è che se premo sul pulsante NO succede la stessa cosa che accade con SI. Vorrei che premendo sul pulsante NO venisse bloccata la procedura?

 

Else    ' User chose No.

    MyString = "No"    ' Perform some action.

    Exit Sub

End If

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-02-19T15:24:13+00:00

    Ciao a tutti ho risolto con questo codice:

    Private Sub Attiva_Allievo_a_Click()

    Dim Msg, Style, Title, Help, Ctxt, Response, MyString

    Msg = "Premendo SI disattiverali l'allievo " & [CognomeNome] & ". Vuoi continuare?"

     Style = vbYesNo + vbCritical + vbDefaultButton2

     Title = "DISATTIVAZIONE ALLIEVO"

    Response = MsgBox(Msg, Style, Title, Help, Ctxt)

    If Response = vbYes Then    ' User chose Yes.

         MyString = "Yes"    ' Perform some action.

     DoCmd.RunCommand acCmdSaveRecord

     DoCmd.RunCommand acCmdRefresh

     Forms!CSDG.Requery

     Forms!CSDG.Refresh

    Else    ' User chose No.

         MyString = "No"    ' Perform some action.

     Me!AttivaAllievo = True

     DoCmd.RunCommand acCmdSaveRecord

     DoCmd.RunCommand acCmdRefresh

     Forms!CSDG.Requery

     Forms!CSDG.Refresh

         End If

         Exit Sub

     End Sub

    grazieeeeeee

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-02-18T07:15:41+00:00

    Ho provato modificando il codice così come postato sotto ma indifferentemente alla pressione del pulsante SI e NO succede la stessa cosa ossia mi viene disattivato il record sulla maschera.

    Ecco il codice:

    <cut>

    Logica E' una questione di logica. Come ti ha fatto notare Mancini, inutile metttere Exit Sub dove lo hai messo tu. In pratica tu hai scritto una cosa tipo:

    '.....

    If Response = vbYes Then

        Saluta

    Else

        Saluta

        Exit Sub

    End If

    '....

    Quindi, saluti SEMPRE.

    Vedi qui (è riferita ad Excel, ma la funzione MsgBox di vb è la stessa per tutti i programmi di Office) :

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-02-17T20:39:18+00:00

    Osserva bene le 4 righe che ti ha consigliato Mauro,

    contengono la istruzione di uscita  ( Exit Sub ) senza fare null'altro

    Tu in mezzo a quelle 4 righe hai aggiunto altre 4 righe

    ( magari un refuso di copia e incolla ) che prima della uscita

    fanno proprio quello che NON vuoi

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-02-17T18:54:14+00:00

    Ho provato modificando il codice così come postato sotto ma indifferentemente alla pressione del pulsante SI e NO succede la stessa cosa ossia mi viene disattivato il record sulla maschera.

    Ecco il codice:

    Private Sub Attiva_Allievo_a_Click()

    Dim Msg, Style, Title, Help, Ctxt, Response, MyString

    Msg = "Premendo SI disattiverai l'allievo. Vuoi continuare?"

     Style = vbYesNo + vbCritical + vbDefaultButton2

     Title = "MsgBox Demonstration"

     Help = "DEMO.HLP"

     Ctxt = 1000

    Response = MsgBox(Msg, Style, Title, Help, Ctxt)

    If Response = vbYes Then    ' User chose Yes.

         MyString = "Yes"    ' Perform some action.

     DoCmd.RunCommand acCmdSaveRecord

     DoCmd.RunCommand acCmdRefresh

     Forms!CSDG.Requery

     Forms!CSDG.Refresh

    Else    ' User chose No.

         MyString = "No"    ' Perform some action.

     DoCmd.RunCommand acCmdSaveRecord

     DoCmd.RunCommand acCmdRefresh

     Forms!CSDG.Requery

     Forms!CSDG.Refresh

         Exit Sub

     End If

     End Sub

    La risposta è stata utile?

    0 commenti Nessun commento