Scelta colori

di il
9 risposte

Scelta colori

Ciao
chiedo venia.. scusate il titolo poco rappresentativo per il topic, non saprei dare un titolo..
Probabilmente mi sto perdendo in un bicchier d'acqua ma non ne vengo fuori, probabilmente il mio ragionamento è sbagliato...

Ho una tabella con una serie di colori, voglio associare ogni colore ad un altro colore. Es: visualizzo su una maschera il record azzurro, su una listbox verranno mostrati i colori ciano e indaco e su una seconda listbox ci saranno con tutti i rimanenti. Tramite un tasto "sposto" i colori dalla seconda listbox alla prima.

La maschera la associo alla tabella colori
la prima listbox la associo a una query che mostra la tabella coloriassociati (dove accoppio IDcolore1 del record corrente con IDcolore2 del colore associato)
da codice assegno alla listbox: Select * from coloriassociati where IDcolore1 = me!id
la seconda listbox è il mio problema
devo associarla a select * from colori ma deve escludere tutto quello che c'è sulla listbox precedente unito al record corrente

Grazie

edit: modificato il titolo

9 Risposte

  • Re: Scelta colori

    In generale, se hai due list-box fra loro connesse, in cascata, ove vi è un legame (in base alla selezione, e sarebbe da valutare se multipla) fra la prima e la seconda; in quest'ultima dovrai agire sulla proprietà RowSource in modo da presentare l'elenco escludendo i dati della prima (costruendo l'elenco dei valori in VBA o agendo nella tabella/query impostando un criterio basato sull'operatore logico NOT con i valori della prima listbox).
  • Re: Scelta colori

    Hai provato a fare una ricerca con parole chiave "caselle combinate a cascata"?
  • Re: Scelta colori

    Ho provato a fare la ricerca secondo tuo consiglio @OsvaldoLaviosa. In realtà sono 2 listbox in cascata e il contenuto della seconda è determinato dal contenuto della prima e non dal record selezionato.
    D'accordo con willi55 che devo agire sulla seconda listbox.Rowsource, ma come la imposto? Credo di dover fare un left join tra la tabella con tutti i colori e la query della tabella dei colori associati parametrizzata rispetto al record corrente, tenendo solo i valori diversi da null oppure diversi dal codice corrente
    Non riesco però a capire come devo scrivere la query essendo quella nidificata parametrizzata
  • Re: Scelta colori

    Prova a leggere questo
  • Re: Scelta colori

    Nel tuo esempio il valore della seconda combobox dipende dalla selezione della prima. Purtroppo non riesco a vedere il nesso con la mia richiesta.
    Posso mandarti da qualche parte l'mdb? Saresti così gentile di dare un'occhiata?
  • Re: Scelta colori

    Pubblica il tuo esempio in modo che sia fruibile a TUTTI, se proprio serve...

    In ogni caso la prima cosa che devi capire è come relazionare le Tabelle... Catalogo e Definizioni...

    Quì trovi un esempio che, partendo dalla logica di una Relazione Molti-Molti fa esattamente quanto dici...
    Guarda solo l'Esempio [DEMO ListBox], si basa su una Tabella Anagrafiche, un Catalogo Mansioni, e di conseguenza un Registri Mansioni Assegnate per ogni Categoria.
    Quando si assegna una mansione, viene spostata da quelle disponibili ed appare in quelle assegnate...



    Scarica solo il Demo Selezionato, si chiama:
    [M2M_RelationShips]
  • Re: Scelta colori

    Io, ai fini dello spirito del forum, preferisco sempre la descrizione dettagliata "letterale", quindi esponi chiaramente:
    - nomi propri di tutte le tabelle che entrano in gioco
    - nomi propri di tutti i loro campi con indicazione della chiave primaria
    - le relazioni
    - nomi propri delle query e su quali campi si poggiano
    - nomi propri di maschere
    - rispiega tutto usando i nomi propri
    Per i primi tre punti, in alternativa, potresti mostrare una immagine della Finestra Relazioni.

    Hai provato a pensare di sostituire le list-box con combo-box?
    Il titolo della discussione, invece di "Aiuto su query", potrebbe essere "Scelte di colori".
  • Re: Scelta colori

    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...
  • Re: Scelta colori

    Ci sono riuscito.. ho fatto una query nidificata
    select * from t_colori where (id not in (select idcolore2 from t_associati where idcolore1 = me!id) and (id <> me!id))
Devi accedere o registrarti per scrivere nel forum
9 risposte