Condividi tramite

Access 2003 Nascondere il messaggio di errore di access quando un campo viene salvato vuoto "richiesto Si" in tabella

Anonimo
2014-09-18T14:50:02+00:00

Buongiorno sono disperato

Perdere un giorno intero per risolvere il problema è assurdo!!

Chiedo il vostro aiuto.

Ho una tabella "RUOLI" che nel campo "descrizione ruolo" ha l'impostazione SI su RICHIESTO

Questo campo non deve mai essere vuoto .

Vorrei che mi apparisse un messaggio personalizzato invece di quello classico di access , quando l'utente cerca di salvare il record, chiudere la maschera , cliccare su pulsanti o caselle combinate . 

Il messaggio deve comunicare "attenzione campo vuoto cosa vuoi fare?" se clicca su ok, ritorna sulla maschera senza perdere quando si è inserito fino a quel momento in altri campi, se clicco annulla ripristino il record e tutti i campi sono vuoti come quando ho aperto la maschera. 

Ovviamente accetto consigli per il testo e il tipo di messaggio da personalizzare.

grazie

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-09-19T15:12:17+00:00

Ciao Christian_boy,

nell'esempio qui sotto ci sono due maschere, una che lavora sull'evento in attesa di ogni campo escluso i due che devono essere compilati e uno che esegue il controllo nell'evento prima di aggiornare della maschera

ControlloInserimento

tutte e due le maschere hanno una routine molto semplice riassunta qui sotto,


Function Controllo_Inserimento()

    If IsNull(Me!DescrizioneRuoloContatto) Then

       MsgBox "E' necessario cmpilare prima il campo DescrizioneRuoloContatto", vbExclamation

       Me!DescrizioneRuoloContatto.SetFocus

       DoCmd.CancelEvent

       Exit Function

    End If

    If IsNull(Me!NR_ATTRIBUZIONE) Then

       MsgBox "E' necessario cmpilare prima il campo NR_ATTRIBUZIONE", vbExclamation

       Me!NR_ATTRIBUZIONE.SetFocus

       DoCmd.CancelEvent

       Exit Function

    End If

End Function


a seconda delle tue esigenze (parlavi di cliccare su caselle combinate o pulsanti) vedi quale soluzione potrebbe andare bene.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-09-19T07:06:03+00:00

    Ciao,

    io tendo a compattare un pò il codice ad es.

    Private Sub Form_BeforeUpdate(Cancel As Integer)

      Dim Res As Integer

            Res = MsgBox( "Vuoi salvare i dati  ?", vbYesNoCancel + vbQuestion , "Database Custom Srl" )

            If Res = 2 Then  

              Cancel = True

            End If

            If Res = 7 Then

                Me.Undo

                Resp = MsgBox("Dati non salvati !!!", vbExclamation, "Database Custom Srl")

            End If

           'If Res = 6 Then -->  non fa nulla quindi cambia record e salva

    End Sub

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-09-19T06:45:42+00:00

    Ciao MAURIZIO

    Questo è il codice che ho inserito prima di aggiornare

    <cut>

    Ti erano state suggerite due varianti MIGLIORI e PIU' EFFICIENTI per  valutare la risposta di una MsgBox....

    http://answers.microsoft.com/it-it/office/forum/office_2003-access/access-2003-vbyesnocancel/0d23d309-597b-4c23-842a-bbb49559a0e0

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-09-18T20:43:58+00:00

    Ciao MAURIZIO

    Questo è il codice che ho inserito prima di aggiornare

    Private Sub Form_BeforeUpdate(Cancel As Integer)

        Dim Msg1, Msg2, Msg3, Style1, Style2, Style3, Title, Help, Ctxt, Response

            Msg1 = "Vuoi salvare i dati  ?"    ' Definisce il messaggio.

            Msg2 = "Dati salvati correttamente"

            Msg3 = "Dati non salvati !!!"

            Style1 = vbYesNoCancel + vbQuestion + vbDefaultButton3    ' Definisce i pulsanti si e no, con segnalazione critica e il secondo pulsante è predefinito

            Style2 = vbInformation

            Style3 = vbExclamation

            Title = "Database Custom Srl"    ' Definisce il titolo.

            Dim Res As Integer

                Res = MsgBox(Msg1, Style1, Title)

                ' Si=6   No=7   Annulla=2

            If Res = 2 Then Cancel = True

            If Res = 7 Then

                Me.Undo

                Resp = MsgBox(Msg3, Style3, Title)

            Else

            End If

           'If Res = 6 Then -->  non fa nulla quindi cambia record e salva

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-09-18T15:24:17+00:00

    Ciao,

    io utilizzerei l'evento prima di aggiornare della maschera per testare se il campo è null e di conseguenza fare quello che chiedi.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento