10/07/2023 - BarLudwig ha scritto:
Buon pomeriggio Fratac.
Grazie della ulteriore spiegazione, ora mi è tutto chiaro
Bene. Ora che più o meno ti abbiamo spiegato l'approccio logico al problema e come gestirlo a livello di codice, vediamo se riusciamo a superare in modo un po' più agevole il problema della multiselezione di valori che tu hai pensato di risolvere confrontando i valori compresi tra un range di numeri.
Naturalmente il mio è solo la proposta di un ulteriore punto di vista al problema e come già detto è solo uno dei tanti metodi possibili.
Purtroppo, la grande forza, ma anche il grosso problema di access è che è un programma che cerca di accontentare tutti e quindi per ogni problema esistono decine di approcci logici e decine di metodi e decine di strumenti per risolverlo.
Se da un lato si ha una grande scelta, dall'altro si genera solo confusione perchè ognuno ha un suo metodo preferito. E molte volte allo stesso problema su progetti diversi non è raro che lo stesso programmatore usi metodi diversi. Un po' per comodità, un po' per sperimentare.
Quello che hai pensato di realizzare, implica una modifica alla struttura del codice ad ogni aggiunta, cancellazione o modifica di un valore del tipo di società.
Questo naturalmente non va bene. Il programma deve funzionare indipendentemente dalla quantità dei dati inseriti e dal loro tipo.
come avrai notato nelle immagini che ti ho postato c'è un ulteriore controllo. Cioè la ricerca per testo.
In questa ricerca ci sono due controlli (tre in realtà se consideriamo il pulsante)
Una text box, dove inserisco il testo o la lettera da ricercare nel nome delle serie tv e una listbox, dove vengono visualizzati i risultati della ricerca attivata dal pulsante ricerca per testo.
Quindi se ricerco ad esempio le lettere “or” ottengo questo risultato.
(si ho visto anche “warrior nun” e pure “jane the virgin”….)
Ora, nel mio caso, come utilizzo questo tipo di ricerca, non è quello che serve a te, ma mi è servito come esempio per presentarti una list box e i suoi metodi e proprietà.
Una listbox è praticamente una combobox, solo che al posto di visualizzare i dati in visualizzazione a tendina, hai una visualizzazione estesa e sopratutto permette la multiselezione di valori.
Quindi, secondo me l'uso di una list box ti agevolerebbe molto il lavoro.
Ora, la mia list box è impostata sulla possibilità di selezionare un solo valore.
Quindi se clicco sul nome di una serie, mi apre il form serietv, con i dati di quella serie. (porzione del codice con indice “4”)
(nota per sihsandrea. Si potrei togliere la quarta opzione ed usare la prima con indice “1”. questo mi eviterebbe errori dovuti ad apici o apostrofi nel nome che mi sballerebbero la ricerca. Ma vale sempre il discorso che è un codice scritto al volo)
Come detto però, la list box, ha la possibilità di usare la multiselezione. Cioè selezionare quanti valori desideri.
Nel tuo caso, andresti a selezionare tutte le tipologie di società che ti interessano e poi con un unico pulsante, creare una stringa composta da multivalore da ricercare usando una query che poi passerai con openarg al form che devi aprire, ottenendo la lista di tutte le società che rispettano i termini che hai selezionato nella listbox dell'altro form
In questo modo, puoi aggiungere anche mille tipologie di società, ma il programma funzionerà sempre. Senza essere vincolato da between o confronti legati ad indici statici all'interno del codice, che ti obbligherebbero ogni volta a modificare il codice.