Combo Box parametrizzata tramite query

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Combo Box parametrizzata tramite query

    20/05/2025 - sihsandrea ha scritto:

    la logica vuole che paperopoli sia selezianata da combo e topolino da textbox.

    Infatti.... non capisco però l'utilità della TextBox... 

    Se fosse utilizzata solo con lo scopo di avere la possibilità di parcheggiare un valore per filtrare la ComboBox... beh, direi che non serve, si può fare benissimo anche senza.

    Ma come hai detto in merito alla "Logica" , allora trasformerei la TexbBox in ComboBox dove:

    • Si prende un recordset e si popola con le Città la Prima ComboBox
    • Selezionando la Città nella Prima ComboBox, si popola la Seconda ComboBox con i personaggi abitanti in tale città

    :
    Andando avanti per questa strada, se si ha un foglio dati dove poter selezionare i records, allora:

    • Quando si Seleziona un Record si prende la Città e si Seleziona l' Item nella prima ComboBox
    • E nella seconda ComboBox che si popola con i personaggi di tale Città, si seleziona il Personaggio del record selezionato nel foglio dati.

    ;-) 
    Mi sfugge l'utilità, ma ha una logica un attimino migliore alla precedente ;-)

  • Re: Combo Box parametrizzata tramite query

    Forse mi sono espresso male....

    la combo ha valori finiti es. "milano", "torino", "palermo" ecc... in sostanza un array in quanto indicizzato.

    la stessa lista la puoi ricavare da una listbox o, nel caso limite in una tabella con select citta from capoluoghi

    ora, se cerco samone devo fare una distinzione tra samone (TN) e samone (TO).

    se la combo mi filtra samone non ha senso mi mostrerebbe due samone, ha senso che filtri per capoluogo (TO) o (TN).

    una volta filtrati i dati per capoluogo posso andare in ricerca da textbox con *mo*; sa*; s?mon* ecc...

    una combo che si setta da altre fonti in modo dinamico ha senso quando si applicano più filtri.

    1 combo per capoluoghi, 1 combo che in base al capoluogo mi filtra per montagna, pianura e collina ad esempio. ma parliamo sempre di dati definiti (il solito array)

    20/05/2025 - By65Franco ha scritto:

    Selezionando la Città nella Prima ComboBox, si popola la Seconda ComboBox con i personaggi abitanti in tale città

    mah, i personaggi sono i record stessi, puoi al massimo usare una combo per le caratteristiche (uomini/donne) (adulti/minori) ecc... quindi una prima combo mi filtra la citta, la seconda mi seleziona il sesso in base alle città e la terza in base all'età. supponiamo anche le etnie potremmo avere un solo elemento i combo in base al filtro delle precedenti combinazioni. in altre parole qualcosa che filtra per arrivare al bersaglio topolino, se scrivo topolino non ha piu' senso la combo che mostra topolinia, ratto, maschio... basta leggere il record che incorpora le caratteristiche di topolino la ricerca va fatta partendo da dati comuni.

    es. palermo>>uomini>>minori>>olandesi magari non ci sono minori di sesso maschile olandesi....

    ho l'impressione che ci sia un errore di logica in tutto questo, magari mi sbaglio ma lascia il tempo che trova. la combo nasce per fare quello che ho descritto ma nulla toglie di utilizzarla per fare anche il caffè (con una buona dose di pazienza e codice).

  • Re: Combo Box parametrizzata tramite query

    20/05/2025 - sihsandrea ha scritto:

    Forse mi sono espresso male....

    Scusa Andrea ma farei molta Attenzione... sei completamente OT e questo può generare solo molta confusione.

    Il Thread chiede :

    • come poter impostare un Criterio in una Query che tenga conto se la Form è aperta come Form oppure come SubForm
    • come poter filtrare da una Form una CombBox presente in una subform
    • come poter inpostare da una Form una TexBox presente in una subform
    • come poter utilizzare una SubForm anche in modalità Form senza ricevere errori da eventi utilizzati solo quando deve fare riferimento ad una Form
    • come poter aggiornare la TextBox e la ComboBox sia quando la Form della CombBox è utilizzata solo come Form oppure solo come SubForm
    • come poter aggiornare la TextBox e la ComboBox se da una Form principale si seleziona un Record da un Recordset

    :
    Come puoi vedere non si parla di contenuti o di logiche di impostazioni e/o relazioni tra DATI e DATI (per essere più chiari... come mettere insieme le pere con le mele)
    ... si parla semplicemente e "solo" di come passare dei valori tra i vari Controlli presenti in una Form e in delle SubForm.
    Solo di questo si parla, cioè di tecnica, di come scrivere un CODICE, quali EVENTI utilizzare, come passare un Criterio ad una Query che popola una ComboBox,etc etc..

    Quindi gli esempi sono solo esempi astratti nei contenuti e pratici nonchè reali nella tecnica.

    Adesso mettersi qui a disquisire sui contenuti e logiche che non vengono richieste dall'OP, mi sembra uno spiacevole essercizio con perdita di tempo e non risponde alle richieste espresse nel Thread.

    Quindi si, essendo OT eviterei di parlare dei contenuti, logiche e quant'altro su degli esempi "ASTRATTI" che pongono l'attenzione su come tecnicamente si passano le informazioni da Form a SubForm, Filtrare un recordset tramite TextBox e popolare una ComboBox.

    Questo è l'oggetto del Thread e non se i dati messi come "ESEMPIO" sono logici oppure no... ma cosa c'entra, pippo pluto o paperino oppure mele pere e banane ... ma cosa cambia quando si vuole "SOLO SAPERE" come aggiornare i CONTROLLI nelle Form/SubForm/TextBox/ComboBox/Query.
    Per inciso, i dati utilizzati per gli esempi pur essendo di fantasia, hanno comuque una logica e coerenza... chi non la vede è solo perchè non la vuole vedere.

    Spero che sia chiaro adesso ... o no ? ... ma molto chiaramente lo era anche prima appena è stato aperto il Thread !  ... o no ?
    Poi se si vuole buttare il Thread in caciara, allora me ne tiro fuori e fate quello che volote... ho cose più importanti da fare. 

    Eppure fin dall'inizio mi sembra assolutamente di essermi espresso molto bene !  ;-)

    20/05/2025 - sihsandrea ha scritto:

    ho l'impressione che ci sia un errore di logica in tutto questo, magari mi sbaglio ma lascia il tempo che trova. la combo nasce per fare quello che ho descritto ma nulla toglie di utilizzarla per fare anche il caffè (con una buona dose di pazienza e codice).

    Esatto... ti sbagli su tutta la linea, stai creando una inutile polemica che non serve a nessuno e soprattutto non richiesta da nessuno. 
    Quindi si !!! c'è un errore e cioè quello che stai facendo proprio tu in questo momento con queste frasi buttate li a spregio del lavora degli altri.
    Sono sempre disposto a sorridere e scherzare su tutto e con tutti... ma solo seriamente, con rispetto e non tanto per far caciara.
    E' necessario leggere il Thread dal primo all'ultimo Post prima di proferire giudizi e risposte del tutto fuori luogo e inopportune.
    E' necessario portare RISPETTO ponderando le espressioni ... questo si chiama "Saper Vivere" ...  tutto qua.

  • Re: Combo Box parametrizzata tramite query

    20/05/2025 - fcaliandro ha scritto:

    Ciao Franco,

    Ti posso fornire qualche dettaglio in più?

    Ciao Francesco ... tornando al tuo quesito

    più o meno mi sembra di aver capito ... 

    ti lascio questo demo di cui parlato in precedenza.

    • Non guardare il codice posto in FormMain, serve solo per mostrare la Demo, pertanto non ti serve.
    • Concentrati sugli eventi e i controlli posti nelle due SubForm. Qui trovi dei metodi che puoi usare per Controllare lo stato delle subform e gli Eventi che potresti utilizzare.
    • Mentre la function da impostare nei criteri della query la trovi nel MyModUtility
    • Quindi osserva come funziona e, fatte le tue dovute considerazioni, applica i metodi alla tua soluzione.

    :
    qui puoi scaricare la demo :  https://www.transfernow.net/dl/20250520eQphnZ8w è solo un esempio di come poter navigare tra i controlli e farli parlare tra di loro.

    • In ultimo vorrei chiederti : ma la casella di testo per quale motivo l'hai creata ? ... solo per filtrare la combobox ? 
      Se si , beh non è necessario averla per tale scopo, è sufficiente solo la combobox alla quale fare riferimento.

      Tutto qua... solo un semplicissimo esempio delle quattro routine da cui poter prendere spunto di come passare i dati da un controllo all'altro.

  • Re: Combo Box parametrizzata tramite query

    X tutti: vi ricordo di essere rispettosi ognuno dell'altro. Ci sta che su una soluzione ci siano linee di pensiero e approccio differenti ma non lasciatevi andare nel criticare le soluzioni altrui, semmai ad arricchirle e correggerle.

    Insomma non generate flame altrimenti poi mi tocca chiudere il thread. 

  • Re: Combo Box parametrizzata tramite query

    Le critiche educate fanno crescere professionalmente e moralmente e le accetto tutte (non modifico neanche gli errori ma integro le correzioni).

    Per rispondere alla domanda su multifiltro da combobox, l'unico modo saggio è l'uso di una query parametrica.

    select * 

    from tabella 

    where

    //scrivi una delle tre condizioni

    campoA like * + textbox + *   // se vuoi visualizzare quelli che contengono il testo della textbox

    campoA like * + textbox        // se vuoi visualizzare quelli che finiscono con il testo della textbox

    campoA like textbox  + *      // se vuoi visualizzare quelli che iniziano con il testo della textbox

    // aggiunta di altri filtri

    and (campoB=combo1 and combo1<>'') // se ho una selezione filtra per la selezione altrimenti ignora l'istruzione

    and (campoC=combo2 and combo2<>'') // se ho una selezione filtra per la selezione altrimenti ignora l'istruzione

    giacche' a filtrare i dati sono le combo non ha senso selezionare la voce della combo che non ha impostato un valore.

    in altre parole, la combo comanda i dati non il contrario.

    es. 

    select * from comuni where provincia=comboprovince // supponiamo (TO) la seconda combo supponiamo combodensità non puo' mostrare un valore arbitrario tipo 3.400.000 abitanti perchè il primo filtro chiede di visualizzare tutta la provincia. appena metto il secondo filtro >3400000 allora mi mostra i comuni con quella densità oppure =3400000 il comune con quella densità abitativa.

    per capire meglio dove sta l'errore (o per meglio dire l'inutilità del criterio impostato) la combo con selezionato "paperino" non è un filtro ma un campo di ricerca per testo definito, cioè la combo contiene tutti i record cel campo "Name" della tabella, il che non ha alcun senso mi viene più comodo scorrere la tabella piuttosto che aprire una tendina lunga quanto il database.

    la logica vuole che se cerco quel tale che ricordo si chiama qualcosa come giuseppe verdi o giovanni verdi di milano cerco da textbox gi*verdi non apro una linguetta kilometrica per non scorrere semplicemente i record.

    la risposta al quesito rende necessaria questa spiegazione perchè si sta facendo un uso improprio dei componenti che già fanno il loro dovere senza bisogno di andare a forzare a suon di codice il comportamento di default.

    non ha senso selezionare un record e vedersi cambiare la combo che se settata in modo giusto dovrebbe procedere a filtrare i record. per fare questo avrebbe bisogno di un bypass logico al codice per capire quando attivare il filtro e quando no.

  • Re: Combo Box parametrizzata tramite query

    Ciao a tutti,

    ho necessita di popolarle entrambe combo e casella di testo.

    Perchè, seguendo l'esempio dei fumetti che è simpatico ed intuitivo, mi trovo nella seguente condizione:

    Devo registrare le città (Paperopoli, Topolinia, ..) nel registro delle città premiate come città della cultura per l'anno x.

    Durante la registrazione della città vengono inseriti anche i nominativi dei cittadini che hanno collaborato all'ottenimento del premio.

    Quest'ultimo passaggio avviene attraverso una combo che pesca i dati attraverso una query che a sua volta interroga una tabella che contiene i dati anagrafici (cittadini - città).

    Per cui:

    OSD REGISTER -> Città (ma solo quelle premiate)

    OSD ITEM LIST -> I cittadini ( ma solo quelli che hanno contribuito al raggiungimento del premio)

    Ho impostato in questo modo, grazie ciao

  • Re: Combo Box parametrizzata tramite query

    Chiudo il thread

Devi accedere o registrarti per scrivere nel forum
22 risposte