Premessa: Ho creato ad hoc l'esempio "scolastico" dei colori per analogia al problema nel database che sto sviluppando. Probabilmente non è azzeccato visto le difficoltà nello spiegarlo. In calce provo con un esempio diverso.
@Alex : domani darò un'occhiata al tuo esempio. Dalla frase "Quando si assegna una mansione, viene spostata da quelle disponibili ed appare in quelle assegnate" sembra che il problema sia analogo al mio.
Rispondo a Osvaldolaviosa:
Tabelle:
t_colori ("ID" numeratore aut., chiave prim., "Descrizione" testo)
Contiene i colori
t_associati ("IDColore1" numerico,"IDColore2" numerico) entrambi chiave prim.
Contiene l'associazione tra gli ID dei colori
Query:
q_associati
SELECT t_associati.IDColore1, t_colori.Descrizione FROM t_colori INNER JOIN t_associati ON t_colori.ID = t_associati.IDColore2 WHERE (((t_associati.IDColore1)=[Maschere]![t_colori]![ID]));
q_ricerca
SELECT t_colori.ID, t_colori.Descrizione FROM t_colori WHERE (((t_colori.ID)<>[Maschere]![t_colori]![ID]));
Maschere:
Maschera singola m_colori con origine record t_colori contenente
Textbox "ID"
Textbox "Descrizione"
Listbox "lstAssociati" con proprietà rowsource impostata a q_associati
Listbox "lstRicerca" con proprietà rowsource impostata a q_ricerca (è la query che devo sistemare)
Relazioni:
non ho impostato nessuna relazione
Ora, immaginiamo che t_colori abbia i record azzurro, verde, celeste, ciano, rosso
Di conseguenza tornando al mio esempio, interrogando il colore Azzurro, nella listbox Associati vedo celeste, ciano e nella listbox Ricerca vedo verde, celeste, ciano, rosso.
Io non voglio che appaiano celeste e ciano perchè sono già sulla listbox associati e nemmeno azzurro perchè è il record corrente.
Nota:
azzurro è associato a ciano, celeste
ciano è associato ad azzurro, celeste
celeste è associato ad azzurro, ciano
quindi, visto da un punto matematico sulla listbox ricerca devo sottrarre dall'insieme universo il colore corrente unito ai colori della listbox associati
Provo con un esempio diverso ma con il medesimo ragionamento:
La tabella Persone ha una serie di individui -> come la tabella colori
Le tabella EssereAmici mette in relazione gli ID degli individui -> come la tabella associati
La persona A è amica di B -> primo record nella tabella associati
B è amica di A -> secondo record nella tabella associati
Interrogando A, sulla listbox associati trovo B e sulla listbox ricerca trovo C,D,E...