Newsgroup: it.comp.appl.access
Titolo: Problema con submask (maschere continue)

Ho una maschera con vari campi e una submask che serve per elencare dei 
record associati.
In pratica la maschera principale visualizza una "Scheda Riparazioni" e 
la sottomaschera le varie attività correlate alla riparazione visualizzata.
Ovviamente queste attività possono essere da 0 a N.
Le tabelle (tblRiparazione e tblAttività) sono relazionate tramite il 
campo IDRiparazione, uno-a-molti con lato UNO in tblRiparazioni e lato 
MOLTI in tblAttività.
Ho impostato la submask in modo che sia associata ad una query che 
preleva dal db le attività di interesse e visualizzi il recordset 
tramite maschera continua.
Il problema sorge quando non ho ancora alcuna attività relazionata con 
la scheda aperta (oppure quando cancello l'ultima attività rimasta in 
elenco).
Quando la query associata alla submask ritorna un recordset vuoto tutti 
gli elementi del corpo della maschera principale spariscono (submask 
compresa).
Come mai?

 ha scritto nel messaggio
news:2s4m7gF...@uni-berlin.de...

Come hai impostato le proprietà Collega campi master e Collega campi
secondari del controllo sottomaschera?
Perché usi una query come origine record della sottomaschera e non usi
direttamente la tabella tblAttività?
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 
A tal proposito ho un'altra domanda:
quando vado a modificicare una Scheda Riparazione ovviamente voglio 
lasciare all'utente la possibilità di annullare tutte le modifiche.
Per lo scopo attualmente faccio così: estraggo dalla tblAttività tutti i 
record correlati con la scheda aperta (tramite IDScheda) e vado a 
riempire una tabella di appoggio, avente gli stessi campi di tblAttività.
Ogni aggiunta/modifica/rimozione di attività va a eseguire query su 
questa tabella di appoggio e solamente al salvataggio della scheda vado 
ad aggiornare/accodare i record alla tblAttività.
Secondo me sarebbe meglio lavorare con un recordset ottenuto dalla qeury 
che eseguo su tblAttività per estrarre i record correlati, ma non so poi 
come lavorare con la submask.

 come lavorare con la submask.
La tua è certamente una scelta, ma certamente è molto più complessa da
gestire rispetto ad un sistema con maschera e sottomaschera associate alle
due tabelle e sfruttando la sincronizzazione automatica della maschera con
la  sottomaschera impostando le proprietà Collega campi secondari e Collega
campi master: a mio avviso è assurdo rinunciare ad uno degli automatismi più
apprezzabili offerti da Access.
Puoi anche dare all'utente la possibilità di annullare tutte le modifiche
anche usando maschera e sottomaschera associate e senza complicarsi la vita
con l'uso di  tabelle di appoggio: a tale scopo puoi dare un'occhiata sul
Sito Comune (link qui sotto), nella Sezione Forms la FAQ di Luca Dall'Olio
intitolata "Annullare le modifiche apportate ai dati in una form con
subform".
Oppure, sempre per evitare l'uso fastidioso delle tabelle di appoggio,
potresti usare le transazioni: a tale scopo dai uno sguardo sul Sito Comune,
nella Sezione General alla FAQ di Sib intitolata "Cosa sono e come
funzionano le transazioni?".


 
Ho letto le FAQ e visto gli esempi: in pratica senza transazioni ogni 
volta che modifico un valore in un campo associato, il record viene 
modificato.
Invece con le transazioni è come se mi creassi una copia dei valori e 
aggiornassi il record nel db solo quando confermo?
Quindi apro finestra -> inizio transazione -> edit -> rollback/commit.
Grazie mille!

 recordset come faccio a popolare la lista?
Attento!!
Stai confondendo l'origine controllo con l'origine riga della casella
combinata.
La prima associa o meno il controllo al campo del recordset e la seconda
indica il recordset che contiene i valori possibili dell'elenco: come vedi
una possibilità non esclude l'altra.

-- 
