Come fare match di due o più caselle combinate in una maschera.

di il
12 risposte

Come fare match di due o più caselle combinate in una maschera.

Mi spiego meglio, ho una tabella con i clienti e un certo numero associato che rappresenta la predisposizione o meno al rischio nell'investire in azioni. Ho una seconda tabella aggiornata con i codici dei titoli sui quali investire e il loro valore rischio. Bene ho effettuato una query dove incrocio semplicemente i dati delle due tabelle e inserendo come criterio <=[punteggio cliente] faccio si che mi indichi per ogni cliente solo le azioni che hanno un punteggio compatibile con la sua predisposizione al rischio e fino a qui tutto funziona.
Ho creato poi una maschera con la prima casella combinata dove dalla suddetta query prendo il nome del cliente, e anche qui tutto bene, ho evitato duplicati inserendo DISTINCT, ora avrei bisogno di una seconda casella combinata (a dire il vero più di una) collegata sempre alla stessa query ma al nome delle azioni al netto del "filtro/criterio" che ho descritto poco fa, sostanzialmente serve per poter selezionare tra migliaia solo un certo titolo/azione compatibile col cliente, stampare poi quella schermata per una serie di motivi legali che non sto ad elencare. Il problema è che la casella dei titoli non tiene conto del cliente scelto e presenta l'elenco completo dei titoli (oltre 5000) e non solo quei 10 o 15 compatibili col cliente che ho selezionato nella prima casella combinata. C'è modo di risolvere?

Grazie in anticipo

12 Risposte

  • Re: Come fare match di due o più caselle combinate in una maschera.

    Salve da quello che ho potuto capire e con le informazioni che ci fornisci credo vuoi realizzare delle combo a cascata ma se non ci fornisci più dati sulle tabelle, nome campi e query viene dura darti dei consigli
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Ciao Gianni innanzitutto grazie.
    Detto questo, qualsiasi dato possa essere utile te lo fornisco volentieri, anche perchè sto cercando di sdebitarmi con un amico a cui debbo davvero un grosso favore, ma erano almeno 3 anni che non toccavo access, e anche allora questa particolare cosa non l'avrei saputa fare.
    Detto questo, il nome dell'unica query fatta fino ad ora, che fornisce del resto tutti i dati necessari è "check", e se ti può essere utile è il frutto di due tabelle excel che si chiamano "clienti" e "titoli".
    Se lancio la query trovo queste voci che ti elenco dalla prima all'ultima separate da un trattino : Isin - Divisa di Emissione - Macro classificazione - Punteggio titolo - Cliente - punteggio cliente.
    sotto ognuno di questi titoli c'è la conseguente colonna di dati, e come ho scritto ho inserito un criterio per cui per ogni voce "Isin"(che è il nome dell'azione) mi riporta una voce "Cliente" idenea a quel titolo, non potendo caricare screen qui cerco di simularne uno per capirci:
    ID Isin - Divisa di Emissione - Macro classificazione - Punteggio titolo - Cliente - punteggio cliente
    1 BE0000351602 - EUR - OBBLIGAZIONI - 8 - Cliente Tre - 8,4
    2 BE0000350596 - EUR - OBBLIGAZIONI - 6 - Cliente Tre - 8,4
    2 BE0000350596 - EUR - OBBLIGAZIONI - 6 - Cliente Quattro - 6,2
    3 BE0000349580 - EUR - OBBLIGAZIONI - 1 - Cliente Uno - 3,8
    3 BE0000349580 - EUR - OBBLIGAZIONI - 1 - Cliente Due - 4,5
    3 BE0000349580 - EUR - OBBLIGAZIONI - 1 - Cliente Tre - 8,4
    3 BE0000349580 - EUR - OBBLIGAZIONI - 1 - Cliente Quattro - 6,2

    le voci Cliente si ripetono se il titolo è compatibile con più clienti il che è giusto.
    Ora io nella maschera in questione credo una prima casella combinata che mi fa scegliere tra i clienti, e quello va bene, la casella combinata successiva, deve farmi scegliere dalla voce "Isin" ma per capirci, se selziono "Cliente tre" mi aspetto nell'esempio che ho fatto sopra che mi faccia vedere solo i tre titoli compatibili secondo la query con il cliente tre, mentre invece me li mostra tutti.
    Questo è il problema da risolvere e spero si essere stato esaustivo, ti ripeto sono molto pipù che arrugginito, quindi spiegalo come faresti ad un bambino..haha
    e grazie in anticipo
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Io non ho tanto capito l'intero discorso, ma

    daridima ha scritto:


    una prima casella combinata che mi fa scegliere tra i clienti, e quello va bene, la casella combinata successiva, deve farmi scegliere dalla voce "Isin" ma per capirci, se selziono "Cliente tre" mi aspetto nell'esempio che ho fatto sopra che mi faccia vedere solo i tre titoli compatibili secondo la query con il cliente tre, mentre invece me li mostra tutti.
    Forse ti serve il meccanismo "caselle combinate a cascata". Se è questo il problema, fai ricerche con quelle parole chiave, troverai tante risposte.
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Ciao, allora, dopo un pò di peripezie, si era caselle combinate a cascata, ho visto qualche video e riprodotto esattamente ciò che il vidoe diceva, tipo questo: https://www.youtube.com/watch?v=tT4qu9yt7k0&ab_channel=DanieleCordelli
    ma per capirci, seleziono cliente uno aprendo la maschera, e i valori della successiva casella combinata sono effettivamente quelli del cliente uno, quindi sembra perfetto. In realtà se dopo seleziono dalla prima casella combinata un altro cliente, esempio cliente tre, nella seconda casella combinata mi porta ancora le scelte di cliente uno, ammeno che io non prema su aggiorna. c'è modo di risolvere questo gap qui senza premere aggiorna ad ogni scelta?
  • Re: Come fare match di due o più caselle combinate in una maschera.

    daridima ha scritto:


    ammeno che io non prema su aggiorna. c'è modo di risolvere questo gap qui senza premere aggiorna ad ogni scelta?
    Non so quale soluzione e/o codice VBA tu abbia usato per il tutto. Il meccanismo di caselle combinate a cascata fa leva su filtri che mano a mano vengono innescati. Tu devi PREVEDERE un COMANDO/ISTRUZIONE da qualche parte che ti faccia il reset di tale filtro...forse una cosa così:
    Me.Filter = ""
    ...anche tradurre in VBA il comando Aggiorna sarebbe la soluzione...ma temo sia troppo invasivo, non proprio ortodosso...
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Se fai un occhio al video postato osservi l filtro usato per realizzare il tutto. In poche parole sulla seconda casella combinata, nella struttura dati ho aggiunto come criterio tramite la funzione Genera, di prendere il valore selezionato nella casella precedente. Che altro dovrei fare quindi per fare aggiornare in automatico? Se vuoi posso anche postare il file ad esempio con wetransfer così puoi capire meglio o provare, tanto è circa tre mega. Dimmi tu.
    E grazie
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Posta il/i codice/i VBA che hai usato per far funzionare il tutto.
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Nella voce criteri della seconda casella combinata, ho aggiunto sulla voce cliente (nella prima casella combinata si seleziona appunto il cliente, e l'ho denominata cboclinete) questa voce: [Maschere]![prova cascata]![cbocliente]. tutto qui.
    se preferisci qui: https://we.tl/t-BPP3Tqv20 trovi il file access in questione, magari è più facile vedere dal vivo il file che è in realtà molto semplice e scarno quindi capirai in un secondo, e se hai soluzioni puoi capire se funzionano.

    Grazie
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Ho fatto varie prove. Quella più sbrigativa è stata di aggiungere un pulsante e associare il seguente
    Private Sub NomePulsante_Click()
    DoCmd.RunCommand acCmdRefresh
    End Sub
    che devi cliccare ogni volta che vuoi ripartire.
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Se hai voglia puoi riposare il file con il tasto (confesso che nemmeno ricordo più come si fanno i tasti, haha erano tre o 4 anni che non toccavo access), diciamo che l'ideale sarebbe stato in automatico per evitare che chi lo usa dimentichi di premere aggiorna o di premere il tasto, ma se non vedi altra strada.. Mi fido di te
  • Re: Come fare match di due o più caselle combinate in una maschera.

    1. Apri la maschera in visualizzazione struttura
    2. Non so quale versione di Access hai. Clicca sulla paletta STRUMENTI, nel riquadro Controlli scegli Pulsante, quindi lo disegni dentro la maschera
    3. Una volta creato il pulsante, cliccaci sopra con il tasto destro del mouse e scegli Proprietà
    4. Tra le proprietà scegli la paletta Evento, quindi in corrispondenza di "Su clic", avvicina il mouse all'estrema destra e clicca sul piccolo pulsantino con 3 puntini
    5. Si aprirà una piccola dove devi scegliere "Generatore di codice", quindi OK
    6. Ti apparirà una finestra di codice VBA con già scritte la prima e ultima riga del codice VBA che ho postato prima
    7. Aggiungi la riga intermedia, quindi salva tutto sia nel VBA, sia in visualizzazione struttura maschera
  • Re: Come fare match di due o più caselle combinate in una maschera.

    Ok fatto grazie,
    se per caso però vi venisse in mente una soluzione per evitare il tasto ma fargli fare refresh selezionando un nuovo cliente dalla prima casella condivisa, tanto meglio, perchè temo in errori per tutte le volte che dimenticheranno di premere il tasto.
    grazie
Devi accedere o registrarti per scrivere nel forum
12 risposte