Newsgroup: it.comp.appl.access
Titolo: passaggio tra maschera e sottomaschera

Nel mio BE ho varie tabelle in cui ci sono campi richiesti, nel FE ho
una maschera per l'immissione che contiene diverse sotto maschere
legate alle varie tabelle. Quando il cursore si trova sul campo
richiesto di una sottomaschera premendo il tasto TAB per passare al
record successivo il cursore non si sposta, ma non invia nessun
messaggio all'operatore; se invece utilizzo i tasti CTRL+TAB per
uscire dalla sottomaschera il cursore si sposta al controllo della
successiva sottomaschera anche se il campo della sottomaschea
precedente e' vuoto.
Domanda: come posso fare affinche' anche utilizzando i tasti CTRL+TAB
il cursore non esca dalla sottomaschera fin quando il controllo e'
vuoto.
Questa e' la mia prima richiesta al NG spero di avere una risposta.

 wrote in message 39bb0ca8...@news.iol.it...

Ciao,
prima di tutto imposta l'evento AnteprimaTasti della SottoForm a
Sě
poi supponiamo che il controllo in questione si chiami Pippo,
sull'evento SuTastoGiů di pippo scrivi ;
If Not IsNull(Me!Pippo) Then
ElseIf KeyCode = vbKeyTab And Shift = 2 Then
MsgBox "Pippo deve contenere dei valori"
End If
Ciao Marco
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/



Innanzitutto ti ringrazio per la tua risposta, ma anche se e' un buon
suggerimento non ho risolto completamente il problema. aggiungo
qualche particolare:
Nella sottomaschera (in relazione uno a molti con la pricipale)
l'unico campo visibile e' il campo ditta (che e' anche l'ultimo della
sottomaschera) quindi con la tua soluzione se non si immette alcun
dato tutto funziona, ma se si immette si immette il dato non si riesce
a passare alla successiva sottomaschera fino a quando non si e'
passati al record successivo (della stessa sottomaschera), ma passando
al record successivo ci si blocca nuovamente se non si immette nulla.
Inoltre dovrei riuscire a bloccare anche il passaggio con il mouse per
il quale ho provato con l'evento su mouse giu'. Chiedo scusa per la
lungaggine.
Nino

 Nino
Ciao Marco




Sicuramente sarebbe piu' facile da spiegare avendo davanti il dababase
quindi mi sforzero' di essere piu' chiaro.
Premetto il database verra' utilizzato da altre persone quindi ho la
necessita' di metterli nelle condizioni di non immetere record con
dati mancanti.
Il db e' strutturato con diverse tabelle messe in relazione uno a
molti. Due di queste tabelle (tblDitta e tbl Comune) hanno come campi
solo l'id proprio, la chiave esterna di relazione e il campo dove
vanno immessi i dati.
nelle proprieta' delle tabelle ho messo "richiesto" si e "consenti
lunghezza zero no". Nelle sottomaschere inserite nella principale per
l'immissione il solo campo visibile e' ditta per tblDitta e comune per
tblComune( questo campo con una caselle combinata). 
Con la soluzione proposta da te si verificano i seguenti casi:
1) quando il cursore si trova nel campo ditta se non immetto niente
con la pressione del tasto TAB il cursore non va avanti, cioe' non
passa al record successivo della sottomaschera,
2) se uso Ctrl+Tab passa alla sottomaschera successiva;
3) se uso CTRL+Tab  ma prima che l'immissione sia salvata il cursore
si sposta alla sottomaschera successiva;
4) se uso Tab dopo avere immesso qualcosa il cursore si sposta al
record successivo della stessa sottomaschera e quindi sono nuovamente
al punto uno;
5) se uso Ctrl+Tab
Cio' che mi serve e':
1) che il cursore non si sposti ne con Tab ne con Ctrl+Tab ne con il
Mouse se nel campo attivo non e' stato immesso nulla;
2) dopo avere immesso qualcosa poter scegliere se passare al recors
successivo della stessa sottomaschera per un'altra immissione o
passare al campo della sottomaschera successiva.
Forse basterebbe inibire Ctrl+Tab e il Mouse fino a quando non si
immette qualcosa) in modo che se voglio passare al record successivo
della stessa sottomaschera posso farlo solo con Tab mentre se voglio
andare alla sottomaschera successiva posso usare Ctrl+Tab o il Mouse.
Mi scuso ancora una volta per la lungaggine e ringrazio.
Ciao Nino