Newsgroup: it.comp.appl.access
Titolo: Come forzare una maschera ad aprire un'altra maschera relativa al record selezionato?

Ho una maschera (maschera 1) che visualizza diversi record in base a
una query sottostante. In fondo alla maschera ho creato un pulsante
che su clic apre un'altra maschera (maschera 2) che visualizza i dati
di un record da modificare. Se mi posiziono con il mouse sul primo
campo del record X della maschera 1 e clicco il pulsante, si apre
correttamente la maschera 2 relativa a quel record. Anche se mi
posiziono con il mouse sul primo campo del record Y della maschera 1
tutto avviene correttamente. Tuttavia, se il valore del primo campo č
identico nei record X e Y, la maschera 2 che si apre č sempre relativa
al record X. Come posso fare per risolvere questo inconveniente?
Idealmente vorrei avere come effetto finale una casella posta a
sinistra di ogni record della maschera 1, spuntando la quale definisco
il record sul quale deve aprirsi la maschera 2, senza dover
posizionare il mouse all'interno dei campi.
Grazie di cuore
Stefano


docmd.openform Formname:="formdaaprire",WhereCondition:="campo1=" & 
controllo1direcorddipartenza & ........ "campon=" & 
controllondirecorddipartenza
--
ac

controllondirecorddipartenza
Perdonami, ma da inesperto di codice non mi è chiaro il significato
della condizione. In particolare cosa intendi per
controllodirecorddipartenza ?
Stefano


cito:
  sul primo campo del record X della maschera 1
Un minimo di chiarezza sui termini
Campo = definizione di attributo per una tabella
Controllo = definizione di un oggetto del form che puo' essere o meno 
associato a un "campo". Se e' associato ne riflette il valore
Il tuo form, mi sembra di aver capito, e' di tipo "maschere continue" e 
di tipo "associato" e visualizzi piu' record.
I record visualizzati, immagino, non sono completamente duplicati e' 
percio' necessario indicare nel filtro i valori che identificano 
univocamente "quel" record. Ammettendo che i campi si chiamino
"fld1" e "fld2" .....etc ed i controlli si chiamino "c1" e "c2" .. etc e 
siano numerici
la condizione da passare nella openform e':
WhereCondition:= "fld1=" & c1 & " and fld2=" & c2 ......e tutte le 
eventuali condizioni necessarie
se i valori sono di tipo alfanumerico vanno delimitati da apici(') o 
virgolette("). Se sono di tipo alfanumerico "in campana" con eventuali 
apici presenti nel valore da ricercare.
--
ac

ecc.
Ti ringrazio, ma probabilmente mi sono spiegato male. Vedo di fare
chiarezza.
La mia tabella contiene tutti i miei lavori. Ogni record un lavoro.
La maschera1 visualizza un estratto della tabella basato sulla query
SoloLavoriInCorso, cioè visualizza solo i lavori che hanno un certo
campo di tipo Si/No settato su No (i lavori NON conclusi).
Da questa maschera 1 vorrei, selezionato un record (un lavoro),
procedere a fatturarlo. Per fare cio', ho un pulsante che su clic deve
aprire una maschera2 (che ho già creato) nella quale procedo a
inserire i dati di fatturazione, e deve aprirla solo per il
record/lavoro che ho selezionato nella maschera 1.
Dunque, ho bisogno di definire una condizione per il comando
DoCmd.OpenForm maschera2 associato al pulsante che istruisca il
pulsante stesso ad aprire maschera2 sul record selezionato in
maschera1.
Problema A:
Come selezionare, nella maschera 1, il record che il pulsante deve
aprire nella maschera 2? Con una casella di controllo?
Problema B:
Nella maschera 2 ho aggiunto un pulsante di chiusura associato a un
comando DoCmd.Close. Vorrei aggiungere a questo comando un'operazione
di requery sulla maschera 1 in modo che l'incarico appena fatturato, e
quindi concluso, scompaia immediatamente dalla maschera 1 alla
chiusura della maschera 2 (poiche' la maschera 1 deve visualizzare
appunto esclusivamente i lavori in corso, e non quelli gia' fatturati
e conclusi). Come fare?
Spero di essermi spiegato meglio
Grazie infinite
Stefano

 Stefano
Ciao.
-- 
Sergio MAZZA