[Risolto] Filtraggio da 3 caselle riepilogo.
[Risolto] Filtraggio da 3 caselle riepilogo.
Carissimi del Forum,
torno a chiedere aiuto per la realizzazione del mio database iscritti.
Questa volta per effettuare delle ricerche tra gli iscritti sto cercando di adattare un filtraggio con testo proveniente da più variabili provenienti da caselle riepilogo.
Mi sono basato da un esempio presente nel forum, in particolare un database senza macro il cui file ha questo nome: "Filtraggio con ListBox.odb".
Adattando al mio database, attraverso 3 menù a discesa, inseriti nel formulario "Formulario ricerca", e dalla loro combinazione si dovrebbe visualizzare l'elenco degli iscritti, proveniente dalla tabella "iscritti", filtrata.
I problemi che trovo e non riesco a risolvere sono di diversa natura, il primo:
1) per una casella compare un messaggio di errore che non riesco a capire come eliminare.
2) Poi l'altro problema è legato al fatto che la tabella principale "iscritti" contiene sia caselle testo (non ho problemi con queste) sia caselle contenenti valori
interi (integer) che sono collegati a tabelle separate, ad esempio: "Qualifica", "Scuole Servizio", ecc.
Per queste caselle nelle colonne del form riesco a far visualizzare il testo collegato alla rispettiva tabella, ma nei menù a tendina ("Qualifica" e "Scuola Servizio") mi compaiono solo i valori (numeri) collegati alla tabella corrispettiva. Infatti nelle proprietà della casella riepilogo mi trovo solo il codice sql nativo. Dovrei aggiungere del codice forse?
3) ho notato che nei menù a tendina dovrebbe apparire (nell'esempio originale da dove sto copiando è presente) oltre ai valori di scelta compare anche <tutti> che mi dovrebbe allargare la ricerca a tutti i campi. Io non riesco a farlo apparire.
Oltre al mio esempio allego pure il file di esempio e spero che qualcuno possa aiutarmi.
Grazie.
torno a chiedere aiuto per la realizzazione del mio database iscritti.
Questa volta per effettuare delle ricerche tra gli iscritti sto cercando di adattare un filtraggio con testo proveniente da più variabili provenienti da caselle riepilogo.
Mi sono basato da un esempio presente nel forum, in particolare un database senza macro il cui file ha questo nome: "Filtraggio con ListBox.odb".
Adattando al mio database, attraverso 3 menù a discesa, inseriti nel formulario "Formulario ricerca", e dalla loro combinazione si dovrebbe visualizzare l'elenco degli iscritti, proveniente dalla tabella "iscritti", filtrata.
I problemi che trovo e non riesco a risolvere sono di diversa natura, il primo:
1) per una casella compare un messaggio di errore che non riesco a capire come eliminare.
2) Poi l'altro problema è legato al fatto che la tabella principale "iscritti" contiene sia caselle testo (non ho problemi con queste) sia caselle contenenti valori
interi (integer) che sono collegati a tabelle separate, ad esempio: "Qualifica", "Scuole Servizio", ecc.
Per queste caselle nelle colonne del form riesco a far visualizzare il testo collegato alla rispettiva tabella, ma nei menù a tendina ("Qualifica" e "Scuola Servizio") mi compaiono solo i valori (numeri) collegati alla tabella corrispettiva. Infatti nelle proprietà della casella riepilogo mi trovo solo il codice sql nativo. Dovrei aggiungere del codice forse?
3) ho notato che nei menù a tendina dovrebbe apparire (nell'esempio originale da dove sto copiando è presente) oltre ai valori di scelta compare anche <tutti> che mi dovrebbe allargare la ricerca a tutti i campi. Io non riesco a farlo apparire.
Oltre al mio esempio allego pure il file di esempio e spero che qualcuno possa aiutarmi.
Grazie.
- Allegati
-
- Filtraggio con ListBox.odb
- Esempio trovato sul forum
- (23.05 KiB) Scaricato 145 volte
-
- master_iscritti_13.odb
- File personale su cui lavoro
- (97.62 KiB) Scaricato 147 volte
Ultima modifica di leoforum2 il mercoledì 29 aprile 2020, 21:59, modificato 1 volta in totale.
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: filtraggio da 3 caselle riepilogo.
Ciao, i campi della tabella usata come filtro e di quella in cui i dati devono essere cercati devono essere dello stesso tipo.
Nel file di esempio, tutti i campi sono di tipo Testo.
Nel tuo database i campi della tabella 'Filtro_multiplo' sono di tipo Testo.
Quelli della tabella 'iscritti' sono 1 ti tipo Testo e 2 di tipo Integer.
Nel file di esempio, tutti i campi sono di tipo Testo.
Nel tuo database i campi della tabella 'Filtro_multiplo' sono di tipo Testo.
Quelli della tabella 'iscritti' sono 1 ti tipo Testo e 2 di tipo Integer.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: filtraggio da 3 caselle riepilogo.
Probabilmente dico una banalità, ma visto che non posso modificare i campi della tabella "iscritti" perchè mi sballerebbe tutto il database, visto i campi sono di tipologie diverse posso creare filtri diversi o ci deve essere un solo filtro?
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: filtraggio da 3 caselle riepilogo.
Prova a cambiare 2 campi della tabella 'Filtro_multiplo' in Integer, in maniera da creare corrispondenza fra le 2 tabelle.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: filtraggio da 3 caselle riepilogo.
Ho provato a modificare i 2 campi cambiando tipologia da testo a integer ma niente tutto rimane come prima, compreso il messaggio di errore.
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: filtraggio da 3 caselle riepilogo.
Li leggi i messaggi? Parla di TUTTI, hai copiato bene la tabella omonima?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: filtraggio da 3 caselle riepilogo.
Quando ho personalizzato la tabella "Tutti" ho cambiato il campo "ID" in "ID_iscritto" pensando che dovesse essere uguale al nome della casella con la chiave primaria della tabella "iscritti". Ho provato a lasciarla come quella dell 'esempio ma non funziona.
Poi altra differenza che vedo è la lunghezza del campo "nome". Da 20 a 100. Ho modificato a 100, ma nulla mi è cambiato.
Non riesco a trovare altro.
Poi altra differenza che vedo è la lunghezza del campo "nome". Da 20 a 100. Ho modificato a 100, ma nulla mi è cambiato.
Non riesco a trovare altro.
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: filtraggio da 3 caselle riepilogo.
Allega il file modificato, grazie.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: filtraggio da 3 caselle riepilogo.
Ho dato un'occhiata più attenta.
Se ti ispiri all'esempio che hai trovato sul forum devi necessariamente lavorare con tutti i campi interessati in formato Testo (sia nella tabella del filtro multiplo che in quella degli iscritti).
Inoltre devi essere più attento a come scrivi il codice. Qui mancano delle virgolette in 2 posti:
invece di
Il messaggio di errore riguardante TUTTI deriva da quello.
Se ti ispiri all'esempio che hai trovato sul forum devi necessariamente lavorare con tutti i campi interessati in formato Testo (sia nella tabella del filtro multiplo che in quella degli iscritti).
Inoltre devi essere più attento a come scrivi il codice. Qui mancano delle virgolette in 2 posti:
Codice: Seleziona tutto
SELECT DISTINCT "Qualifica", "Qualifica" FROM "iscritti" UNION SELECT "Nome", ID_iscritto" FROM "Tutti
Codice: Seleziona tutto
SELECT DISTINCT "Qualifica", "Qualifica" FROM "iscritti" UNION SELECT "Nome", "ID_iscritto" FROM "Tutti"
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: filtraggio da 3 caselle riepilogo.
Ho controllato il codice e riuscito ad aggiungere le virgolette mancanti. Per un misterioso motivo (misterioso per me) non mi aggiungeva le virgolette (rimanevano nere anzichè di colore giallo). Comunque adesso ci sono riuscito e non c'è più il messaggio.
Allego il file finale.
Come dici tu quel codice per quel filtro che ho adattato non va bene. Che mi suggerisci. Mi serviva questo sistema a variabili perchè avrei voluto aggiungere altri campi utili per filtrare la tabella "iscritti". Per me l'alternativa e scrivere tante singole ricerche (per nome, per qualifica, per scuola, ecc.), collegarle ad un tasto macro e riunirle in una pagina delle ricerche. In quel modo sarebbe stato comodissimo e più razionale.
Allego il file finale.
Come dici tu quel codice per quel filtro che ho adattato non va bene. Che mi suggerisci. Mi serviva questo sistema a variabili perchè avrei voluto aggiungere altri campi utili per filtrare la tabella "iscritti". Per me l'alternativa e scrivere tante singole ricerche (per nome, per qualifica, per scuola, ecc.), collegarle ad un tasto macro e riunirle in una pagina delle ricerche. In quel modo sarebbe stato comodissimo e più razionale.
- Allegati
-
- master_iscritti_14.odb
- (97.71 KiB) Scaricato 146 volte
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: filtraggio da 3 caselle riepilogo.
Ecco una edizione "ridotta" del tuo database.
Per farlo funzionare:
Per farlo funzionare:
- Ho creato una query per avere dei campi testo dove sono numerici nella tabella (ho tolto per semplificare i campi in più)
- Ho creato una vista sulla query (non sono sicuro che sia indispensabile, se vuoi puoi provare a lavorare direttamente con la query)
- Allegati
-
- Master_Iscritti_semplificato.odb
- (29.83 KiB) Scaricato 147 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Filtraggio da 3 caselle riepilogo.
Ciao caro Charlie,
ti ringrazio per la tua generosità.
Ti vorrei chiedere qualcosa sulla "vista1" che hai realizzato.
Se capisco bene questa vista e come se fosse una tabella provvisoria che ricava i valori dei suoi campi da una ricerca ("ricerca1).
In questo modo nel formulario si supera il problema delle differenza delle tipologie dei campi (testo o integer).
Spero di avere capito bene, così in futuro possa usare questo metodo per altre soluzioni.
Quello che però mi sembra più complicato da capire è la logica della tabella/form che hai usato nel formulario "Formulario ricerca" con i suoi criteri (sql).
Mi sembra come se tu avessi ipotizzato tutte le probabili combinazioni che si possano verificare. Se volessi inserire un altra variabile di ricerca dovrei aggiungere le varie combinazioni?
Mi dai un aiutino?
ti ringrazio per la tua generosità.
Ti vorrei chiedere qualcosa sulla "vista1" che hai realizzato.
Se capisco bene questa vista e come se fosse una tabella provvisoria che ricava i valori dei suoi campi da una ricerca ("ricerca1).
In questo modo nel formulario si supera il problema delle differenza delle tipologie dei campi (testo o integer).
Spero di avere capito bene, così in futuro possa usare questo metodo per altre soluzioni.
Quello che però mi sembra più complicato da capire è la logica della tabella/form che hai usato nel formulario "Formulario ricerca" con i suoi criteri (sql).
Mi sembra come se tu avessi ipotizzato tutte le probabili combinazioni che si possano verificare. Se volessi inserire un altra variabile di ricerca dovrei aggiungere le varie combinazioni?
Mi dai un aiutino?
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
Re: Filtraggio da 3 caselle riepilogo.
Sì a tutte le tue domande.
Per aggiungere un nuovo campo di ricerca, bisogna farlo nella tabella usata come filtro e nella tabella/vista in cui si cerca.
Il codice da usare sembra piuttosto complesso ma in realtà diventa tale solo dopo averlo aperto con la procedura grafica, non ti so dire perché.
Il codice da cui sono partito è questo:
Se ora controlli è diventato:
Quindi per aggiungere un nuovo campo si dovrebbe scrivere:
Per aggiungere un nuovo campo di ricerca, bisogna farlo nella tabella usata come filtro e nella tabella/vista in cui si cerca.
Il codice da usare sembra piuttosto complesso ma in realtà diventa tale solo dopo averlo aperto con la procedura grafica, non ti so dire perché.
Il codice da cui sono partito è questo:
Codice: Seleziona tutto
SELECT * FROM "Vista1" WHERE ( "Qualifica" = :Lu OR :Lu IS NULL ) AND ( "Scuola" = :La OR :La IS NULL ) AND ( "Iscrizione" = :Sp OR :Sp IS NULL )
Codice: Seleziona tutto
SELECT * FROM "Vista1" WHERE ( "Iscrizione" = :Sp AND "Qualifica" = :Lu AND "Scuola" = :La OR "Iscrizione" = :Sp AND "Qualifica" = :Lu AND :La IS NULL OR "Qualifica" = :Lu AND "Scuola" = :La AND :Sp IS NULL OR "Qualifica" = :Lu AND :La IS NULL AND :Sp IS NULL OR "Iscrizione" = :Sp AND "Scuola" = :La AND :Lu IS NULL OR "Iscrizione" = :Sp AND :La IS NULL AND :Lu IS NULL OR "Scuola" = :La AND :Sp IS NULL AND :Lu IS NULL OR :La IS NULL AND :Sp IS NULL AND :Lu IS NULL )
Codice: Seleziona tutto
SELECT * FROM "Vista1" WHERE ( "Qualifica" = :Lu OR :Lu IS NULL ) AND ( "Scuola" = :La OR :La IS NULL ) AND ( "iscrizione" = :Sp OR :Sp IS NULL ) AND ("NuovoCampo" = :Xy OR :Xy IS NULL)
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Filtraggio da 3 caselle riepilogo.
Perfetto
sono riuscito ad inserire un altro parametro di ricerca grazie ai tuoi consigli.
Hai una birra offerta da me
sono riuscito ad inserire un altro parametro di ricerca grazie ai tuoi consigli.
Hai una birra offerta da me
OpenOffice 2.4 Ubuntu
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy
LibreOffice ver. 5 Linux Mint LMDE 3 Cindy