Newsgroup: it.comp.appl.access
Titolo: Verifica inserimento campo

Non so se ho indovinato il titolo del 3d, mah!
Ho inserito questo codice:
Private Sub Cognome_LostFocus()
If Not IsNull(CodiceUtente) And IsNull(Cognome) Then
MsgBox "Inserire il COGNOME ", vbExclamation
Nome.SetFocus
Cognome.SetFocus
Cancel = True
End If
End Sub
Funziona quasi sempre, infatti se vado sopra il campo cognome
col cursore e poi voglio uscire, senza inserire dati,diventa un circo.
non ce modo, se non quello di uscire con la X della msk,ma prima
di uscire mi presenta la msgbox per 3 volte (come Giuda) e dopo che
ho dato altrettanti OK, esce.
Me sta a pià in giro (come direbbe il Biso).
Suggerimenti?
Debora


[cut]
Ciao,
io farei il controllo su Cognome_AfterUpdate in modo che la procedura verifichi il contenuto solo quando questo è stato
effettivamente modificato.
Le due istruzioni .Setfocus che hai utilizzato di seguito potrebbero darti il problema che hai descritto (in particolare se anche il
controllo [Nome] ha una routine LostFocus associata):
nel tuo caso dovrebbe essere sufficiente Cognome.Setfocus
Ciao,
Mat.

 ha scritto nel messaggio
news:alafn1$q19$1...@lacerta.tiscalinet.it...

Mi sembra che ci siano un po' di post negli ultimi giorni che gira e rigira
sono sempre gli stessi...
Una domanda: ma se tu eviti di spostare il focus su un'altro controllo e
specifichi solo cancel=True non ti annulla l'evento?
Fabio

 Cancel = True
questa che roba e'? a che serve?
lostfocus (se questa era l'intenzione) non e' cancellabile
non lo vedi che "non" ti passa il parametro cancel


 e vabbe' ma solo se codice utente e' <> da null altrimenti......
oops
detto puttanata 
--
a.cara


Mi correggo: dopo aver letto il post di Alessandro mi sono reso conto che
l'evento LostFocus non è annullabile ma a questo punto meglio usare l'evento
SuUscita (senza i vari setfocus su altri controlli)
Fabio


Alessandro ha ragione, On LostFocus non si può annullare (On Exit piuttosto)
Mat.

 > If Not IsNull(CodiceUtente) And IsNull(Cognome) Then
il problema che hai descritto e' insito in questa if
se il cogmome rimane null 
ti rimette il focus e ricomincia
--
a.cara

 specifichi solo cancel=True non ti annulla l'evento?
non mi risulta che l'evento lostfocus sia cancellabile
--
a.cara


Ti ho fregato, mi sono corretto da solo 30 sec. prima...:-)
Comunque non so se sia corretto neanche usare PrimaDiAggiornare come hai
suggerito tu perchè se prima di avere il focus il campo è già null, quando
esco deve comunque bloccarmi (anche se non faccio nessuna modifica e quindi
saltando quell'evento)
Alla fine siamo tutti d'accordo su OnExit!
Vai Debora
Fabio

 Alla fine siamo tutti d'accordo su OnExit!
none (rafforzativo di no). Il problema rimane
Cancella l'onexit il cognome rimane null e il ciclo aricomincia
--
a.cara

 ha scritto nel messaggio news:EZ3e9.9306$AW6.1...@twister2.libero.it...

...neanche questa volta sono arrivato uno :-/
in qualsiasi caso penso che dovrà controllare il contenuto dei campi che non devono essere nulli prima di passare ad un record
nuovo, o no?
Mat.

 ha scritto nel messaggio
news:3D78CCB9...@blunet.it...

Secondo me funziona cosě...
Private Sub Cognome_Exit(Cancel as integer)
If Not IsNull(CodiceUtente) And IsNull(Cognome) Then
    MsgBox "Inserire il COGNOME ", vbExclamation
    Cancel = True
End If
End Sub
... solo che non ho voglia di mettermi a provare a quest'ora (potrebbe
provare Debora che non si sente piů)
Fabio


Presumo di sì ma ormai sono troppo fuso per pensare alle soluzioni efficenti
Ciao, FABIO
PS: Ci stiamo "scannando" in tre ma speriamo che alla fine Debora ci dica
come ha risolto il problema!!

 ha scritto nel messaggio
news:EZ3e9.9306$AW6.1...@twister2.libero.it...

Ho spostato la routine su onExit
ma mi ripete la stessa musica.
Allora ho levato uno dei due setfocus e quello che è rimasto
lho messo sul primo campo in  ordine di tabulazione.
Cosi funziona bene, l'unico neo e che il focus non torna
sul campo cognome,ovviamente. (ma a dire il vero,forse neanche
mi serve xkè se si annulla vuol dire che non si vuole inserire!)
Debora.