Newsgroup: it.comp.appl.access
Titolo: impedire messaggio

Buona domenica a tutti.
Il problema:
In una maschera di inserimento ho come campi obbligatori
un'IdProgetto, un NDocumento ecc,,,
Su evento "Attivato" di  NDocumento ho il seguente codice:
NDocumento = IIf(NDocumento > 0, [NDocumento] + 0,
Nz(DMax("[nDocumento]", "[tblIndennita]", "[IDProgetto]= " & Forms!
[frmIndennita]![IDProgetto]), 0) + 1)
e funziona.
Può capitare che si passi con tab o invio alla casella di controllo
NDocumento senza aver selezionato l'IdProgetto e ovviamente esce il
messaggio:
"errore di run-time 3075
Errore di sintassi (operatore mancante) nell'espressione della query
'[IdProgetto]='  "
Io vorrei, preferibilmente, o non permettere il passaggio da un
controllo obbligatorio senza aver digitato nulla, o seconda ipotesi
non far apparire il messaggio ma bloccare il salvataggio del record su
pulsante conferma (lo fa già ma con il messaggio predefinito, invece,
in questa ipotesi vorrei personalizzare il messaggio).
Grazie.
Ciao. Giuseppe.

 ha scritto nel messaggio 
news:68a08bae-2349-42b3...@f63g2000hsf.googlegroups.com...
Buona domenica a tutti.
Il problema:
In una maschera di inserimento ho come campi obbligatori
un'IdProgetto, un NDocumento ecc,,,
Su evento "Attivato" di  NDocumento ho il seguente codice:
NDocumento = IIf(NDocumento > 0, [NDocumento] + 0,
Nz(DMax("[nDocumento]", "[tblIndennita]", "[IDProgetto]= " & Forms!
[frmIndennita]![IDProgetto]), 0) + 1)
e funziona.
Puņ capitare che si passi con tab o invio alla casella di controllo
NDocumento senza aver selezionato l'IdProgetto e ovviamente esce il
messaggio:
"errore di run-time 3075
Errore di sintassi (operatore mancante) nell'espressione della query
'[IdProgetto]='  "
Io vorrei, preferibilmente, o non permettere il passaggio da un
controllo obbligatorio senza aver digitato nulla, o seconda ipotesi
non far apparire il messaggio ma bloccare il salvataggio del record su
pulsante conferma (lo fa gią ma con il messaggio predefinito, invece,
in questa ipotesi vorrei personalizzare il messaggio).
Grazie.
Ciao. Giuseppe.
Se si passa sempre da NDocumento  a l'IdProgetto io metterei un controllo 
sul  l'IdProgetto che indaga sul valore di NDocumento nel caso isnull o "", 
il focus torna automaticamente su NDocumento (se vuoi anche con un msgbox) 
costringendo l'utente ad inserire un valore.
Ciao. Ulderico

 Ciao. Ulderico
Ho risolto mettendo su evento prima di aggiornare della maschera il
seguente codice:
     If IsNull(Me.IDProgetto) Then
            Cancel = True
            MsgBox "Non hai selezionato il progetto"
            Me.IDProgetto.SetFocus
            End If
        If IsNull(Me.NMandato) Then
            Cancel = True
            MsgBox "Non hai digitato il numero del mandato"
            Me.NMandato.SetFocus
            End If
ecc...
però non vorrei far apparire il messaggio di access successivo a
quello MsgBox da me indicato tipo "DoMenuItem è stata annullata" .
Inoltre ho inserito la condizione che se il controllo ImportoReversale
è maggiore di 0 o diverso da niente (come si scrive via codice?)
allora deve effettuare il controllo anche su altri tre controlli, ma
non funziona.
Il codice, successivo all'ultimo controllo obbligatorio senza
condizione, è:
If Me.ImportoReversale < 0 Then
        If IsNull(Me.descrizioneReversale) Then
            Cancel = True
            MsgBox "Non hai digitato la descrizione della reversale"
            Me.descrizioneReversale.SetFocus
            End If
Ciao. Grazie.
Giuseppe.

 Giuseppe.
-- 
Ciao
Geppo


Tutto ok. Grazie ancora Geppo.
Giuseppe.