Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [access vba]filtro con valori tre ListBox

    SAlve ragszzi, un aiuto a un principiante...grazie gia' da ora

    Devo fare un form con tre listbox e un pulsante che mi apre una seconda maschera che pubblichi i risultati filtrati in base ai parametri selezionati nelle 3 listbox.

    e' possibile fare una cosa del gnere?

    utilizzare una sola listbox lo ho fatto, ma 3 non capisco come si possa fare

  2. #2
    tutto si può fare..

    vorrei aiutarti però non capisco il tuo problema.

  3. #3
    praticamente in una maschera voglio mettere 3 listbox, contenenti ciascuna del valori che sono 3 diversi attributi della tabella articoli. selezionato un valore per ogni list box cliccando su un pulsante voglio fare si che si apra la maschera degli articoli che riporti i risultati filtrati in base alle carattersitiche selezionate nelle 3 listbox



    c'e' soluzione?

  4. #4
    magari se posti il codice di come fai con 1 sola listbox potrei capire qualcosa!

  5. #5
    questo e' quello che fa con un solo listbox...lo creo con l'autocomposizione

    codice:
    Private Sub disponibilita_Click()
    On Error GoTo Err_disponibilita_Click
    
        Dim stDocName As String
        Dim stLinkCriteria As String
    
        stDocName = "DISPONIBILITA' MERCE IN MAGAZZINO"
        
        stLinkCriteria = "[id_calsse_articolo]=" & Me![Elenco0]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Exit_disponibilita_Click:
        Exit Sub
    
    Err_disponibilita_Click:
        MsgBox Err.Description
        Resume Exit_disponibilita_Click
        
    End Sub

  6. #6
    bene, quello che devi fare è modificare questo codice:
    --> stLinkCriteria = "[id_calsse_articolo]=" & Me![Elenco0]

    [id_calsse_articolo] è il nome del campo della tabella che viene filtrato
    Me![Elenco0] è il valore restituito dalla selezione della listbox1

    Se non sei pratico puoi risolvere facilmente così:
    - inserisci altre due listbox nella maschera, diciamo "Elenco1" e "Elenco2"
    - utilizza l'autocomposizione che hai già usato, per gli altri due campi della tabella
    - dai un'occhiata al codice generato, e ti troverai tre Sub quasi identiche, una per pulsante, dove ciò che cambia è solo la stringa che ti ho evidenziato sopra con -->
    - segnati il codice generato
    - a questo punto lascia le 3 listbox e cancella i 2 pulsanti in eccesso, e sul codice dell'evento click dell'unico pulsante che resta vai a modificare la stringa con il codice autogenerato; poniamo per esempio che tu abbia ottenuto:

    stLinkCriteria1 = "[id_calsse_articolo]=" & Me![Elenco0]
    stLinkCriteria2 = "[campo1]=" & Me![Elenco1]
    stLinkCriteria3 = "[campo2]=" & Me![Elenco2]

    allora, sul codice del pulsante che resta vai a mettere:
    stLinkCriteria = "([id_calsse_articolo]=" & Me![Elenco0] & " AND [campo1]=" & Me![Elenco1] & " AND [campo2]=" & Me![Elenco2] & ")"

    ATTENZIONE che quello che ti ho scritto va' bene se campo1 e campo2 sono campi numerici, perchè se sono stringhe allora dovrai scrivere:
    stLinkCriteria = "([id_calsse_articolo]=" & Me![Elenco0] & " AND [campo1]='" & Me![Elenco1] & "' AND [campo2]='" & Me![Elenco2] & "')"

    vale a dire che se un campo non è numerico allora bisogna aggiungere prima e dopo
    Me![ElencoX]
    un apice.

  7. #7
    CA-PO-LA-VO-RO!!!!


    Grazie mille

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    2
    Ciao a Tutti, avrei bisogno di un aiuto,
    Io ho da fare una maschera di selezione in access per aprire una maschera contenente alcuni dati, i campi di filtro sono 3: MATERIALE, SPESSORE, FINITURA

    questo è il codice di VBA che ho provato a modificare ma temo di aver sbagliato qualc...

    Private Sub Comando52_Click()
    On Error GoTo Err_Comando52_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "Impegni Lamiere"

    stLinkCriteria = "[SPESSORE]=" & Me![SEL-SPESSORE]
    stLinkCriteria = "[MATERIALE]=" & "'" & Me![SEL-MATERIALE] & "'"
    stLinkCriteria = "[Finitura]=" & "'" & Me![SEL-FINITURA] & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    stLinkCriteria = "([SPESSORE]=" & Me![SEL-SPESSORE] & " AND [MATERIALE]='" & Me![SEL-MATERIALE] & "' AND [FINITURA]='" & Me![SEL-FINITURA] & "')"



    Exit_Comando52_Click:
    Exit Sub

    Err_Comando52_Click:
    MsgBox Err.Description
    Resume Exit_Comando52_Click

    End Sub

    Mi ignora il campo filtro materiale, gli altri due funzionano...

    Qualcuno può aiutarmi??
    Grazie mille in anticipo!

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da Wimo
    Ciao a Tutti, avrei bisogno di un aiuto,
    Io ho da fare una maschera di selezione in access per aprire una maschera contenente alcuni dati, i campi di filtro sono 3: MATERIALE, SPESSORE, FINITURA

    questo è il codice di VBA che ho provato a modificare ma temo di aver sbagliato qualc...
    Questa discussione risale a 6 anni fa!
    Apri una discussione per trattare il tuo problema, seguendo le indicazioni del Regolamento, con un titolo adeguato e formattando il codice usando il tag [CODE].
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.