ListBox e selezione multipla: come usarla?

di Jocman il
12 risposte
Ciao a tutti.
Un collega mi ha messo una pulce nell'orecchio, perchè gli farebbe più comodo selezionare dei valori da una listbox invece che dover ogni volta riaprire la combobox (come gliel'ho fatta attualmente).
Così ho provato a smanettare una listbox, ed effettivamente riuscirei a fargli fare quello che mi ha chiesto.
La listbox (come la combobox) ha origine da una tabella selezionando ID (nascosto) e un campo testo
Però, ho visto che sulla proprietà "Selezione multipla" ho 3 possibilità: nessuna, semplice, estesa.
Non ho trovato nulla sulla guida, ma ho notato che in modalità Semplice consente di selezionare più voci dell'elenco.
Sarebbe l'ideale, ma come si usa?
Nel senso: per le prove che ho fatto, in modalità Nessuna su DoppioClick ho messo un codice che fa quello che deve fare, quindi per ogni voce,quando clikko, fa il suo dovere, cioè alimentare una tabella (aggiunge un record per ogni voce clikkata).
In modalità Semplice potrei selezionare più voci elenco, ma poi come uso quella selezione (nel mio caso per alimentare la tabella aggiungendo X record per X voci selezionate)?
In modalità Estesa non mi consente di selezionare più voci, ma allora a che serve?

Andrea

12 Risposte

  • Jocman ha scritto:


    Però, ho visto che sulla proprietà "Selezione multipla" ho 3 possibilità: nessuna, semplice, estesa.
    Non ho trovato nulla sulla guida... Sarebbe l'ideale, ma come si usa?
    https://support.microsoft.com/en-us/office/multiselect-property-e382a2e2-9e3e-44ac-a8df-668c72adb5a3
    Setting - Description
    None      (Default) Multiple selection isn't allowed.
    Simple    Multiple items are selected or deselected by clicking them with the mouse 
              or pressing the SPACEBAR.
    Extended  Multiple items are selected by holding down SHIFT and clicking them with the mouse 
              or by holding down SHIFT and pressing an arrow key to extend the selection from the previously 
              selected item to the current item. You can also select items by dragging with the mouse. 
              Holding down CTRL and clicking an item selects or deselects that item.
    E' sufficiente?
  • Philcattivocarattere ha scritto:


    Jocman ha scritto:


    Però, ho visto che sulla proprietà "Selezione multipla" ho 3 possibilità: nessuna, semplice, estesa.
    Non ho trovato nulla sulla guida... Sarebbe l'ideale, ma come si usa?
    https://support.microsoft.com/en-us/office/multiselect-property-e382a2e2-9e3e-44ac-a8df-668c72adb5a3
    Setting - Description
    None      (Default) Multiple selection isn't allowed.
    Simple    Multiple items are selected or deselected by clicking them with the mouse 
              or pressing the SPACEBAR.
    Extended  Multiple items are selected by holding down SHIFT and clicking them with the mouse 
              or by holding down SHIFT and pressing an arrow key to extend the selection from the previously 
              selected item to the current item. You can also select items by dragging with the mouse. 
              Holding down CTRL and clicking an item selects or deselects that item.
    E' sufficiente?
    a quello che già ti ha indicato Phill aggiungo che se passi alla SIMPLE o alla EXTENDED non puoi pensare di utilizzare l'evento doppio click dell'elenco e dovrai passare al doppio click di pulsante aggiunto appositamente (di norma)
  • Philcattivocarattere ha scritto:


    E' sufficiente?
    Uhmmmmmmm......ni.

    Cioè, per quanto riguarda le differenze direi di si, e quindi la Semplice fa al caso mio.

    Però è sull'uso di quella multiselezione che non so come.
    Cioè, nella listbox mi ritrovo qualcosa tipo:
    
    (1) Voce1
    (2) Voce2
    
    etc etc (il numero tra parentesi è la colonna nascosta)

    Senza multiselezione, su doppio click della voce eseguo qualcosa del genere:
    
    dbengine(0)(0).Execute("INSERT INTO tblProva (Campo1,Campo2) VALUES (" & listbox.column(0) & ",'" & listbox.column(1) & "')"),dbFailOnError
    
    con la multiselezione vorrei che quel codice fosse reiterato per ogni voce selezionata.

    Probabilmente devo smanettare con la ItemsSelected collection.....

    Ci provo e faccio sapere....

    PS: lo vedi che sei tra i Top Ten?
  • Jocman ha scritto:


    ...PS: lo vedi che sei tra i Top Ten?
    Che è successo? sono sceso in classifica? top 5, non top 10. Vada anche per top 10 purché almeno tra i primi 5.
  • Philcattivocarattere ha scritto:


    Jocman ha scritto:


    ...PS: lo vedi che sei tra i Top Ten?
    Che è successo? sono sceso in classifica? top 5, non top 10. Vada anche per top 10 purché almeno tra i primi 5.
    cos'è sta roba dei top10 ? c'è una classifica?!? ... nn sto capendo
  • Philcattivocarattere ha scritto:


    Che è successo? sono sceso in classifica? top 5, non top 10. Vada anche per top 10 purché almeno tra i primi 5.
    OPS......Vedi che nun te se po' nascondere niente? hai ragione era TOP 5, mea culpa

    E quanto al giochino si, è una cosa tra di noi. Lo so che si incazza (si può dire?) ma io insisto ad essere dell'opinione che nonostante il nick ha tutt'altro che un cattivo carattere

    @Alex ha scritto:


    Devi fare un ciclo... e concatenare gli ITEMSELECTED per ottenre la stringa dei valori separata dalla virgola...!!!!!

    Questo è quanto trovi con una ricerca banale:
    https://learn.microsoft.com/en-us/office/vba/api/access.listbox.itemsselected
    Si infatti mi riferivo proprio a quello quando dicevo che sperimentavo un pò
  • Prova a guardare questo:


    In altro a SX trovi una ListBox in multi-selezione estesa, applica la selezione ed a DX, trovi 3 metodi di applicazione del criterio.

    Usa il 1° su Filtro dato dalla Sub [cmdApplyFilter_Click()], in ogni caso la Funzione principale è [FillItems(...)]
  • Jocman ha scritto:


    Lo so che si incazza (si può dire?) ma io insisto ad essere dell'opinione che nonostante il nick ha tutt'altro che un cattivo carattere
    Lo sai che mi arrabbio? da quando in qua? mi hai mai "letto" arrabbiato? nello specifico arrabbiato con chi mi dice che la seconda parte del nick non è veritiera?
  • Chiedo scusa, parlato senza accendere tutto il cervello....
  • @Alex ha scritto:


    Prova a guardare questo:
    Grazie per il consiglio.
    Alla fine sono riuscito ad ottenere il risultato che cercavo e ho imparato qualche altra cosa di utile.
Devi accedere o registrarti per scrivere nel forum
12 risposte