Ricerca combobox multiple

di il
1 risposte

Ricerca combobox multiple

Salve a tutti, sono nuovo nel forum e ringrazio chiunque voglia darmi una mano.
Sto creando un database per la classificazione degli articoli di varie riviste. Il DB è composto da una sola tabella, in cui si inseriscono gli articoli e le caratteristiche che hanno, come la pagina, la rivista di appartenenza, la categoria di appartenenza dell’articolo ecc…

Per l’inserimento dei dati ho fatto in modo di avere per i campi denominati “Rivista”, “Criterio”, “Cartella” e “Settore” un menù a tendina; in pratica ho selezionato in “Tipo origine riga” della tabella “Articoli” la voce “Elenco valori” e ho dato di conseguenza i valori da scegliere in fase di immissione dati per tutti e quattro i campi. Fino a qui, tutto bene.

In seguito ho creato una maschera per effettuare la ricerca degli articoli secondo i quattro criteri sopra riportati attraverso quattro combobox, quindi ho assegnato a ciascuna di esse i relativi valori in base a cui filtrare in “Origine riga”, sempre selezionando la voce “Elenco valori” in “Tipo origine riga” e la query nella finestra delle proprietà della maschera.

Il mio problema è che la ricerca funziona e da buon esito solamente se vengono selezionati i valori di tutte e quattro le combobox, mentre vorrei che fosse possibile effettuare la ricerca anche giocando solo su una delle caselle combinate.
Mi spiego meglio: mi piacerebbe che, una volta aperta la maschera, fosse visualizzata tutta la lista degli articoli e che ciascuna combobox filtri i risultati solo se attivata.

Ho provato differenti soluzioni, come quella di inserire in ciascun elenco di ricerca la voce (Tutto) e scrivere per ogni cbo, in “Evento” > “Dopo aggiornamento” il codice:

Private Sub cbo_categoria_AfterUpdate()
Me.Requery
If Left(Me.cbo_categoria, 1) = "(" Then
Me.FilterOn = False
Else
Me.FilterOn = True
End If
End Sub

Ma non funziona.
Qualcuno saprebbe aiutarmi? Buona serata a tutti f

1 Risposte

  • Re: Ricerca combobox multiple

    matteo986 ha scritto:


    Salve a tutti, sono nuovo nel forum e ringrazio chiunque voglia darmi una mano.
    Sto creando un database per la classificazione degli articoli di varie riviste. Il DB è composto da una sola tabella, in cui si inseriscono gli articoli e le caratteristiche che hanno, come la pagina, la rivista di appartenenza, la categoria di appartenenza dell’articolo ecc…
    Prima usavi EXCEL...?
    Posso solo suggerirti di leggere, meglio studiare, qualche cosa prima di iniziare a fare un lavoro non avendo BASI, perchè sicuramente si sbaglia.
    Tu hai assolutamente e sicuramente sbagliato l'approccio tecnico, tipico di chi usa Excel, ma che per un Database RELAZIONALE, ed ho scritto i maiuscolo volutamente, non può essere di riferimento.

    matteo986 ha scritto:


    Per l’inserimento dei dati ho fatto in modo di avere per i campi denominati “Rivista”, “Criterio”, “Cartella” e “Settore” un menù a tendina; in pratica ho selezionato in “Tipo origine riga” della tabella “Articoli” la voce “Elenco valori” e ho dato di conseguenza i valori da scegliere in fase di immissione dati per tutti e quattro i campi. Fino a qui, tutto bene.
    Ma sei sicuto che vada bene...?
    Non è proprio possibile ed oltre ad essere errato credo tu abbia confuso le cose.
    TIPO ORIGINE RIGA=Tabella/Query
    ORIGINE RIGA=Articoli
    Questo lo puoi imparare con qualche libro di base.

    matteo986 ha scritto:


    In seguito ho creato una maschera per effettuare la ricerca degli articoli secondo i quattro criteri sopra riportati attraverso quattro combobox, quindi ho assegnato a ciascuna di esse i relativi valori in base a cui filtrare in “Origine riga”, sempre selezionando la voce “Elenco valori” in “Tipo origine riga” e la query nella finestra delle proprietà della maschera.

    Il mio problema è che la ricerca funziona e da buon esito solamente se vengono selezionati i valori di tutte e quattro le combobox, mentre vorrei che fosse possibile effettuare la ricerca anche giocando solo su una delle caselle combinate.
    Mi spiego meglio: mi piacerebbe che, una volta aperta la maschera, fosse visualizzata tutta la lista degli articoli e che ciascuna combobox filtri i risultati solo se attivata.

    Ho provato differenti soluzioni, come quella di inserire in ciascun elenco di ricerca la voce (Tutto) e scrivere per ogni cbo, in “Evento” > “Dopo aggiornamento” il codice:

    Private Sub cbo_categoria_AfterUpdate()
    Me.Requery
    If Left(Me.cbo_categoria, 1) = "(" Then
    Me.FilterOn = False
    Else
    Me.FilterOn = True
    End If
    End Sub

    Ma non funziona.
    Qualcuno saprebbe aiutarmi? Buona serata a tutti f
    Mi fermo prima di entrare nel dettaglio della ricerca perchè è indispensabile tu ci faccia capire se i suggerimenti legati all'errata struttura ti sono utili o se preferisci proseguire con la tua attuale impostazione.
Devi accedere o registrarti per scrivere nel forum
1 risposte