Ricerca tramite casella di riepilogo e casella di testo

di il
6 risposte

Ricerca tramite casella di riepilogo e casella di testo

Ciao a tutti, ho il seguente problema nel creare una query:

Ho una tabella chiamata libro costituita dagli attributi (autore,titolo,editore,ecc ecc..) ed ho pensato di creare una maschera che contenga una casella di riepilogo contenente l'elenco di tutti i campi, in modo da far scegliere all'utente il campo sul quale effettuare la ricerca.
Ho poi inserito una casella di testo in cui si può digitare il valore da ricercare.

L'obiettivo sarebbe scrivere una query che ricerchi il valore della casella di testo nel campo selezionato della casella di riepilogo.

Se ad esempio seleziono il campo "Autore" e nella casella digito "Leopardi" dovrebbe ricercarmi tutti i libri che ha scritto Leopardi.
Vi allego uno screen nel caso non sia stato molto chiaro nella spiegazione.

Grazie anticipatamente per ogni eventuale chiarimento.
Allegati:
20872_be69eab8f2a379d21e54aa9548e2e17d.jpg
20872_be69eab8f2a379d21e54aa9548e2e17d.jpg

6 Risposte

  • Re: Ricerca tramite casella di riepilogo e casella di testo

    Scusa, ma il TUO problema quale sarebbe?
    Non hai spiegato cosa hai fatto, che problemi riscontri, errori, ecc...
  • Re: Ricerca tramite casella di riepilogo e casella di testo

    La cosa è relativamente semplice... ma serve un po di VBA... tu sei pratico...?
    Spiega anche come hai POPOLATO la ListBox... può cambiare molto la complessità della soluzione.
  • Re: Ricerca tramite casella di riepilogo e casella di testo

    Perdonate la poca chiarezza,sarò più esaustivo:

    La casella di riepilogo è popolata con una semplice query:
    SELECT [Libro].[Autore], [Libro].[Titolo], [Libro].[Editore], [Libro].[Anno], [Libro].[Materia], [Libro].[Formato], [Libro].[Timbro di appartenenza], [Libro].[Pagine], [Libro].[Stanza], [Libro].[Libreria], [Libro].[Palchetto], [Libro].[N° Catena], [Libro].[Presente], [Libro].[Da inventariare], [Libro].[Collocazione effettiva], [Libro].[Collocazione attuale], [Libro].[Stato di manutenzione richiesta] FROM Libro;
    e come tipo di origine di riga ho selezionato elenco campi (per avere i nomi degli attributi,anzichè i valori).

    La domanda è la seguente: come scrivo la query, in modo che effettui la ricerca del campo selezionato dalla Listbox, che abbia come valore lo stesso della textbox? Sicuramente ci sarà da scrivere in Vba, che avevo studiato una decina di anni fà..

    Spero di aver chiarito i dubbi
  • Re: Ricerca tramite casella di riepilogo e casella di testo

    Devi tenere presente, che il Criterio da comporre sulla Selezione del campo è Dipendente dal FielDType...!
    Dovresti sapere che un Campo Numerico ha una sua sintassi, diversa da un campo Testo e diversa da un campo Data.

    Quindi non puoi semplicemente pensare di trattare tutto allo stesso modo.
    Per questo puoi facilmente sfruttare la Funzione nativa [BuildCriteria] di Access alla quale passi il NomeCampo, il TipoCampo ed il Valore e lei compone la Stringa in modo corretto.
    Esempio che puoi eseguire in Finestra Immediata(CTRL+G)
    
    ? BuildCriteria("DataOrdine", dbDate, ">1-1-95")
    DataOrdine>#1/1/1995#
    
    ? BuildCriteria("Editore", dbText, "Pippo")
    Editore="Pippo"
    
    Nel tuo caso ricavi tutto dalla ListBox...
    
    strWHERE=BuildCriteria(Me.NomeListBox.Value, Me.NomeListBox.Recordset.Fields(Me.NomeListBox.Value).Type, Me.TuaTextBox.Value)
  • Re: Ricerca tramite casella di riepilogo e casella di testo

    Recentemente mi sono imbattuto nella stessa problematica e ho approfondito quanto scritto in questo 3D con il contenuto del link seguente...


    https://msdn.microsoft.com/en-us/library/office/ff845070.aspx


    Che condivido con gli altri utenti.
  • Re: Ricerca tramite casella di riepilogo e casella di testo

    La guida in linea lo condivide già nel miglior modo possibile mi pare...
Devi accedere o registrarti per scrivere nel forum
6 risposte