Ricerca tramite casella di riepilogo e casella di testo

di Anonimizzato20872 il
6 risposte
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

  • Scusa, ma il TUO problema quale sarebbe?
    Non hai spiegato cosa hai fatto, che problemi riscontri, errori, ecc...
  • 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.
  • 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
  • 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)
  • La guida in linea lo condivide già nel miglior modo possibile mi pare...
Devi accedere o registrarti per scrivere nel forum
6 risposte