PDA

Visualizza versione completa : Maschera Access di sola visualizzazione


omancino
30-08-2016, 12.59.38
Buongiorno a tutti. Non so' se si tratta di un problema banale, ma ho creato una maschera con una casella combinata che dovrebbe consentirmi SOLO di visualizzare alcuni campi ad essa correlati in una sottomaschera associata.(ES. casella combinata contenente elenco cognomi utenti --> la sottomaschera visualizza i dati anagrafici relativi)
Purtroppo la navigazione comporta l'aggiunta dei record visualizzati alla tabella di origine (che Ŕ unica).
Semplificando, come posso fare in modo che i dati vengano solamente visualizzati?
Grazie

LoryOne
30-08-2016, 13.44.07
Se il recordset popolato in base ad una query di tipo select Ŕ di tipo snaphot e non dynaset, l'elenco contiene valori a sola lettura.

omancino
30-08-2016, 14.13.19
Quindi dovrei settare a "Snapshot" la proprietÓ "Tipo Recordset" della sottomaschera? (allegato)

RunDLL
30-08-2016, 22.56.56
Crea un'altra maschera uguale alla prima con i campi bloccati.

omancino
31-08-2016, 09.14.40
Scusa runDLL potresti darmi qualche dettaglio in pi¨? Quando dici "Crea un'altra maschera uguale alla prima.." ti riferisci alla sottomaschera?
Grazie

LoryOne
31-08-2016, 12.10.01
Mi par di capire che la casella combinata sulla prima maschera funga da ricerca in base al campo Attore...
La prima maschera Ŕ connessa alla seconda sulla stessa tabella attraverso il campo Attore.
Scegliendo l'Attore nella prima maschera attraverso una casella combinata, gli ulteriori campi appartenenti alla stessa tabella vengono popolati coerentemente sulla seconda, giusto ?
Se si cambia il valore di Attore nella prima maschera all'interno della casella combinata, viene cambiato automaticamente lo stesso campo nella seconda; E' questo il tuo problema ?

Secondo la mia personale visione:
1 - La correlazione tra le due maschere va eseguita su un campo numerico ID, meglio ancora su un campo definito come chiave primaria.
2 - La casella combinata nella prima maschera deve essere popolata con una query SELECT Attore,ID FROM NomeTabella di tipo snapshot, ma la visualizzazione dei valori di scelta deve essere collegato al solo campo Attore ed avere la proprietÓ locked abilitata
3 - La seconda maschera, deve riportare la possibilitÓ di agire sui record e consentirne l'addnew.
4 - Al variare del recordset collegato alla seconda maschera, alla casella combinata nella prima va assegnato il metodo Requery.

omancino
31-08-2016, 13.09.30
Grazie LoryOne per l'attenzione.
"Mi par di capire che la casella combinata sulla prima maschera funga da ricerca in base al campo Attore...
La prima maschera Ŕ connessa alla seconda sulla stessa tabella attraverso il campo Attore.
Scegliendo l'Attore nella prima maschera attraverso una casella combinata, gli ulteriori campi appartenenti alla stessa tabella vengono popolati coerentemente sulla seconda, giusto ?" Corretto
"Se si cambia il valore di Attore nella prima maschera all'interno della casella combinata, viene cambiato automaticamente lo stesso campo nella seconda;" Non corretto. Quello che, correttamente, accade Ŕ che tutti i campi presenti nella sottomaschera relativi al soggetto ATTORE selezionato nella casella combinata, vengono aggiornati.
Il mio problema Ŕ che, alla chiusura della maschera di visualizzazione, viene aggiunto il record visualizzato alla tabella di origine!
Inoltre, per motivi di pulizia di presentazione, mi piacerebbe che la casella combinata e tutti i campi della sottomaschera venissero azzerati alla apertura della maschera principale stessa.
Temo vi sia un difetto di creazione della sottomaschera e aggancio alla casella combinata.

LoryOne
31-08-2016, 13.40.21
Non credo sia un difetto.
Se nella casella combinata scegli un valore presente nella seconda maschera, il puntatore al record si sposta sulla riga corrispondente: Averlo scelto, significa aver effettuato un update.
Se nella casella combinata scrivi un valore, la seconda maschera deve riportare un addnew sul record di tabella una volta che l'update di quel valore ha avuto luogo nella casella combinata.
Se le due maschere sono connesse attraverso identico campo, al variare dello stesso, entrambe le maschere devono riportare identico valore.
E' quindi l'evento update del campo correlato che scatena la correlazione tra le due maschere.

La sola cosa che devi fare, Ŕ consentire sia l'update sia l'addnew sulla maschera secondaria ed impedire alla casella combinata di poter modificare un valore: Quella li serve solo a selezionare valori giÓ presenti.

omancino
31-08-2016, 13.44.13
Il problema sta' proprio nel meccanismo in base al quale, quando seleziono un valore di Attore nella casella combinata, tutti i campi relativi nella sottomaschera vengono correttamente visualizzati ma poi aggiunti nella tabella di riferimento. Io vorrei solo la visualizzazione di tali valori. Non devo popolare la tabella origine, solo navigarci!

LoryOne
31-08-2016, 13.47.04
La tabella di riferimento non Ŕ comune ad entrambe le maschere ?
La sola cosa che devi fare, Ŕ consentire sia l'update sia l'addnew sulla maschera secondaria ed impedire alla casella combinata di poter aggiungere un valore: Quella li serve solo a selezionare valori giÓ presenti.

omancino
31-08-2016, 13.48.06
intervenendo su quale proprietÓ?