Newsgroup: it.comp.appl.access
Titolo: Come si forza l'utente a inserire un campo?

Ciao a tutti
In una sub-form alcuni campi (diciamo Txt1,Txt2, ...) non devono essere
lasciati vuoti dall'utente.
Sembra semplice da risolvere invece nel mio caso non lo e', almeno per me.
Ho scartato subito il controllo all'uscita dai singoli campi (Txt1.lostfocus
o Txt1.BeforeUpdate o Txt1.AfterUpdate) perche' non mi piacciono i controlli
"trappola" da cui non esci se non hai inserito qualcosa.
Vorrei che l'utente potesse pasticciare in lungo e in largo come gli pare,
ma se tenta di passare ad altro record o comunque di salvare dovrebbero
scattare i controlli.
Ho dovuto scartare anche l'impostazione della proprieta' Richiesto nei campi
associati a Txt1,Txt2 ... perche' anche qui c'e' un problema.
Altri campi nella stessa maschera, infatti, hanno valori predefiniti
calcolati in un modo assai contorto. Non sapendo come fare per assegnare
questi valori automaticamente ad ogni nuovo record, ho risolto creando il
record da codice
set r7=me.recordsetclone
with r7
    .addnew
    !Campo1= SuperFunzione(X,Y,Z,H,K,E=mc*c...)
    if luna=piena then !Campo2= MegaFunzione(a,b,c)
    ......
    .update
end with
e poi posizionandoci sopra la form con
me.bookmark = record appena inserito
Purtroppo all'.update si blocca dicendomi che manca l'impostazione di alcuni
campi richiesti. Giustamente!
Non posso usare la Form_BeforeUpdate perche' se l'utente non tocca nessun
controllo, questa non scatta (non essendo il record modificato) e
Txt1,Txt2,... sono rimasti vuoti.
Non posso nemmeno usare la Form_Current perche' non consente il cancel.
E qui ho finito le idee.
Qualcuno che mi ha seguito fin qui ha qualche idea?
Grazie anticipate
Marco
---
il mio vero indirizzo e-mail e' senza la "y"
---
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:000501c05417$77d4f540$e29a0f97@pkk...

Scrivi la tua routine di controllo a fronte dell'evento "Prima di
aggiornare" della tua maschera; questo evento prevede il Cancel.
In alternativa, apri la struttura della tabella che contiene i campi e nella
Proprietą tabella "Valido se" programmati i tuoi controlli e inserisci il
messaggio di errore nella proprietą "Messaggio errore".
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

messaggio di errore nella proprietą "Messaggio errore".
Grazie roberto ma...
Non funziona !!!
L'inserimento di un nuovo record avviene da codice con
AddNew
valorizzazione di alcuni campi
Update
e poi
Me.bookmark=rkset.LastModified
A questo punto il record risulta gia' inserito ed e' disponibile alla
modifica.
Il BeforeUpdate non scatta se uno lascia vuoti tutti i campi e non modifica
niente, quindi non parte il mio controllo per evitare che certi campi non
siano lasciati vuoti.
L'impostazione della proprieta' "Valido Se" mi da' un errore quando faccio
l'update, perche' il record inserito deve soddisfare le condizioni Campo1 is
not null, Campo2 is not null ....
Altre idee?
Ciao
Marco
-- 
Posted from [212.210.92.253] 



Probabilmente non ho capito il tuo problema, ma io non effettuerei l'AddNew
se non dopo aver verificato che siano significati i campi per Update.
Altrimenti non ti resta che rendere corrente il record incompleto, ma ormai
registrato, e fare una Delete.
Se non va bene neppure così significa che non ho proprio capito il tuo
problema: pazienza.
