Newsgroup: it.comp.appl.access
Titolo: Selezionare con il mouse

Ho la necessità di selezionare alcuni elementi usando il mouse o la
tastiera da una maschera che visualizza una tabella.
Es. Una persona vuole noleggiare delle videocassette quindi mi
piacerebbe avere la maschera con i dati della persona e l'elenco delle
videocassette in modo da sceglierle semplicemente cliccandoci sopra
senza scrivere niente.
Nella tabella videocassette c'è' un campo che dovrebbe contenere l'ID
della persona che l'ha noleggiata.
Alla fine vorrei che si visualizzassero solo quelle selezionate.
Non ho idea di come si possa gestire la selezione in questo modo.
Spero di essere stato per lo meno comprensibile.
Grazie a tutti.



Puoi provare a creare una maschera contenente i dati del cliente e
all'interno una sottomaschera continua con origine alla tabella
videocassette. Dopo di che crei, nella sottomaschera,  una funzione
sul doppio click,ad esempio del controllo nomevideocassetta, che
inserisce nel campo id della tab. videocassette l'id del cliente.
Questa è la prima soluzione che mi è venuta in mente. 
Spero di essere stato chiaro.
Ciao

"Liceo Serpieri" <serp...@XYZrimini.com> ha scritto nel messaggio
news:3acc550c...@news.libero.it...

Diamo per scontato che che hai una tabella Persone che ha come chiave
primaria un campo chiamato IDPersona e che contiene i nominativi di tutti
coloro che possono noleggiare videocassette.
Come hai già detto, hai una tabella Videocassette che oltre ad in campo
IDVideocassetta, che ne è la chiave primaria, contiene anche un campo
IDPersona, che avrà valore Null nel caso in cui la videocassetta non è al
momento noleggiata, oppure contiene il valore della chiave primaria della
persona che ha in noleggio la videocassetta.
Creati tra le due tabelle una relazione uno-a-molti in base ai campi
IDPersona; richiedi l'integrità referenziale ma non attivare l'opzione
Elimina record correlati a catena.
Creati una query di selezione (Query1) basata sulla tabella Videocassette e
nei criteri relativi al campo IDPersona scrivi Is Null; così facendo, Query1
ti mostrerà solamente le videocassette non noleggiate.
Quindi, come ti ha già detto Carmel, creati una maschera (Maschera1) a
visualizzazione a Maschera singola che abbia come origine record la tabella
Persone. In Maschera1 inserisci anche un controllo sottomaschera nel quale
metterai una sottomaschera (SotMask1) con visualizzazione a Maschere
continue e che ha come origine record la tabella Videocassette.
Avrai risolto un primo problema: aprendo Maschera1, per la persona che è
corrente, nella sottomaschera vedrai le videocassete che ha in quel momento
in noleggio.
Ora, in Maschera1, inserisci una casella di riepilogo non associata
(ElencoVideo) che abbia come origine riga Query1.
A questo punto, se apri Maschera1, oltre a quello detto sopra, nella casella
di riepilogo ti comparirà l'elenco delle videocassette noleggiabili.
A fronte dell'evento "Su clic" della casella di riepilogo ElencoVideo genera
un codice VBA che faccia queste cose:
1) Apra un recordset sulla tabella Videocassette.
2) Ricerchi il record della videocassetta su cui hai cliccato nella casella
di riepilogo.
3) Inserisca nel campo IDPersona del record trovato il valore contenuto in
IDpersona di Maschera1.
4) Aggiorni il record trovato.
5) Esegua il Requery sia della casella di riepilogo ElencoVideo e sia del
controllo sottomaschera inserito in Maschera1.
Dopo aver fatto questo, se apri Maschera1 e clicchi su una videocassetta che
ti compare nella casella di riepilogo, detta videocassetta scomparirà da
ElencoVideo e ti comparirà nella sottomaschera, come videocassetta
noleggiata dalla persona cui appartiene il record corrente di Maschera1.
A questo punto, inserisci in SotMask1 un pulsante di comando e a fronte del
suo evento "Su clic" genera un codice VBA che faccia le seguenti cose:
1) Apra un recordset sulla tabella Videocassette.
2) Ricerchi il record della videocassetta corrente in SotMask1.
3) Ponga a Null il campo IDPersona del record trovato.
4) Aggiorni il record trovato.
5) Esegua il Requery sia della casella di riepilogo ElencoVideo e sia del
controllo sottomaschera inserito in Maschera1.
Al momento che una persona ti restituisce una cassetta noleggiata, apri
Maschera1, posizionati sulla persona in questione, localizza nella
sottomaschera la videocassetta restituita e clicca sul relativo pulsante di
comando; vedrai che la videocassetta sparisce dalla sottomaschera e
comparirà nell'elenco della casella di riepilogo, come cassetta
noleggiabile.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------