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-19T12:31:40+00:00

    Ciao Giorgio

    Si come al solito avevi ragione , cercavo di compilare prima l'altro campo "NR ATTRIBUZIONE" e quindi 

    mi dava il messaggio. Dovrei estendere il codice anche al campo "NR_ATTRIBUZIONE".

    Per la modifica non importa perchè se il collega tenta di cancellare il contenuto del campo mi appare il messaggio.

    Grazie della pazienza.

    ricopio il codice della mia maschera

    Private Sub Form_Dirty(Cancel As Integer)

    If IsNull(Me![DescrizioneRuoloContatto]) And Me.ActiveControl.Name <> "DescrizioneRuoloContatto" Then

           MsgBox "messaggio vba soluzione del grande Giorgio E' necessario inserire prima il ruolo"

           Me![DescrizioneRuoloContatto].SetFocus

           Cancel = True

        End If

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-09-19T11:04:03+00:00

    Per Giorgio grazie del suggerimento ma non ti ho fatto presente, che la maschera tramite pulsanti

    può essere di inserimento o modifica. Quando clicco su modifica mi appare il primo record inserito,

    quando clicco inserimento la maschera si posiziona su un nuovo record.

    Ovviamente su nuovo record sente il campo vuoto e mi genera il tuo messaggio.

    I tuo sistema mi piace molto ma dovrei adattarlo per entrambi i casi .Vorrei anche che agisse  su due o tre campi a mia scelta. Scusami se non ti ho fornito tutti gli elementi.

    Ciao Christian_boy,

    ovviamente su nuovo record deve dare i messaggio se non si inserisce prima un valore in [descrizione ruolo]

    ovviamente in variazione record il campo [descrizione ruolo] è già compilato quindi il controllo non scatta.

    rileggi attentamente il mio precedente suggerimento, prima di ampliarlo a più di un campo il concetto deve essere chiaro latrimenti è inutile continuare.

    :-)

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-09-19T10:34:33+00:00

    Buongiorno a tutti

    Vi ringrazio per i riscontri.

    Per Mauro, scusa ma non comprendo cosa intendi il codice di Giorgio del precedente post non risolve questo problema.

    Per Maurizio, hai proprio ragione!!! sto ancora imparando il Vba e seguo i passaggi come libro. Modifico il codice come me lo hai suggerito.

    Per Giorgio grazie del suggerimento ma non ti ho fatto presente, che la maschera tramite pulsanti

    può essere di inserimento o modifica. Quando clicco su modifica mi appare il primo record inserito,

    quando clicco inserimento la maschera si posiziona su un nuovo record.

    Ovviamente su nuovo record sente il campo vuoto e mi genera il tuo messaggio.

    I tuo sistema mi piace molto ma dovrei adattarlo per entrambi i casi .Vorrei anche che agisse  su due o tre campi a mia scelta. Scusami se non ti ho fornito tutti gli elementi.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-09-19T08:04:14+00:00

    Ciao Christian_boy,

    per come la vedo io se un campo non può essere vuoto deve essere il primo a essere valorizzato.

    Io la risolverei imponendo nell'evento "In Attesa" della maschera l'immisione dati nel campo [descrizione ruolo]

    esempio:

    Private Sub Form_Dirty(Cancel As Integer)

        If IsNull(Me![descrizione ruolo]) And Me.ActiveControl.Name <> "descrizione ruolo" Then

           MsgBox "E' necessario inserire prima il ruolo"

           Me![descrizione ruolo].SetFocus

           Cancel = True

        End If

    End Sub

    in questo modo nessun altro campo può essere valorizzato se il ruolo non lo è.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento