[Risolto] Filtrare risultati formulari

Discussioni sulle caratteristiche di database
Rispondi
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

[Risolto] Filtrare risultati formulari

Messaggio da g_federico_g »

Ciao ragazzi
ho realizzato una pagina in formulari, dove , su due tabelle diverse ottengo dei dati.
Dal momento che sono tanti dati, vorrei aggiungere una casella per poter digitare il valore da trovare.
Non capisco il meccanismo e quindi non riesco.Vi chiedo aiuto.
Allego il file.
Grazie.
Allegati
Tabella Semplice per Permutazioni.odb
(148.75 KiB) Scaricato 77 volte
Ultima modifica di g_federico_g il mercoledì 23 marzo 2022, 22:33, modificato 1 volta in totale.
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8955
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Filtrare risultati formulari

Messaggio da charlie »

Ciao, nel formulario devi impostare la tabella Filtro come MainForm e la/le query ottenuta/e tramite codice sql come SubForm.
Nell'esempio che allego, ho ipotizzato una ricerca sul campo (A*C)/(B*D).
P.S. ho notato che nelle query ci sono valori con numero di denti = 0 :roll:
Allegati
Tabella Semplice per Permutazioni_2.odb
(157.02 KiB) Scaricato 99 volte
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Volevo inserire anche gli altri risultati nel filtro di ricerca provando a modificare il mio formulario Risultati Permutazioni a 2 e 4 ingranaggi con FILTRO sulla base di quanto mi hai scritto.... quindi ho creato le relazioni tra filtro e risultati e nell'SQL inserito OR al posto di AND, in modo che , se cerco un valore lo trova O sulla prima colonna, O sulla seconda, O sulla terza...ecc..ecc... pare che funziona. Ma quando vado a vedere l'SQL mi esce Sintax Error.

Inoltre ho notato che se scrivo la ricerca e pigio il pulsante di ricerca, non fa nulla, ma se chiudo il formulario e lo riapro, mi esegue il filtraggio con il valore scritto in precedenza.

SQL = SELECT "RisultatIPermutazione4Ingranaggi".*, "Filtro"."FILTRO", "RisultatIPermutazione4Ingranaggi"."A", "RisultatIPermutazione4Ingranaggi"."B", "RisultatIPermutazione4Ingranaggi"."C", "RisultatIPermutazione4Ingranaggi"."D", "RisultatIPermutazione4Ingranaggi"."(A*B)/(C*D)", "RisultatIPermutazione4Ingranaggi"."(A*C)/(B*D)", "RisultatIPermutazione4Ingranaggi"."(A*D)/(B*C)", "RisultatIPermutazione4Ingranaggi"."(B*C)/(A*D)", "RisultatIPermutazione4Ingranaggi"."(B*D)/(C*A)", "RisultatIPermutazione4Ingranaggi"."(C*D)/(B*A)", "Filtro"."FILTRO" FROM "RisultatIPermutazione4Ingranaggi", "Filtro" WHERE "RisultatIPermutazione4Ingranaggi"."(A*B)/(C*D)" = "Filtro"."FILTRO" OR "RisultatIPermutazione4Ingranaggi"."(A*C)/(B*D)" = "Filtro"."FILTRO" OR "RisultatIPermutazione4Ingranaggi"."(A*D)/(B*C)" = "Filtro"."FILTRO" OR "RisultatIPermutazione4Ingranaggi"."(B*C)/(A*D)" = "Filtro"."FILTRO" OR "RisultatIPermutazione4Ingranaggi"."(B*D)/(C*A)" = "Filtro"."FILTRO" OR "RisultatIPermutazione4Ingranaggi"."(C*D)/(B*A)" = "Filtro"."FILTRO"
Allegati
Tabella Semplice per Permutazioni con filtro2.odb
(157.17 KiB) Scaricato 85 volte
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8955
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Filtrare risultati formulari

Messaggio da charlie »

Ciao, il mio formulario, con le tue modifiche, funziona benissimo.
Per modificare i tuoi devi riprodurre questa gerarchia:
Schermata 2022-03-21 alle 09.34.46.png
dove il MainForm è la tabella Filtro e il SubForm la griglia (Campo di controllo tabella 1) collegata al codice SQL. Il pulsante di Aggiornamento deve essere nel SubForm.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Niente, non riesco.
In formulario:
Il filtro funziona solo se scrivo il numero, chiudo e riapro. Alla riapertura mi trova i valori filtrati ma con la schermata aperta il pulsante AGGIORNA non funziona. Devo chiudere e riaprire.

Inoltre (allegho due immagini PRIMA che mi cambi l'SQL e dopo con l'SQL modificato)
Quando creo le condizioni per il filtraggio, funziona, va tutto bene ... chiudo e quando riapro, trovo tutto spostato , vado per controllare l'SQL e mi restituisce l'errore SINTAX ERROR in SQL EXPRESSION.
Allegati
Dopo.png
PRIMA.png
Tabella Semplice per Permutazioni con filtro.odb
(76.9 KiB) Scaricato 87 volte
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8955
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Filtrare risultati formulari

Messaggio da charlie »

Ciao, apri il navigatore e vedrai questo schema:
Schermata 2022-03-22 alle 07.15.57.png
È molto diverso da quello che ti ho indicato.
Rifai il formulario da capo usando la procedura guidata:
  • Imposta soltanto la tabella Filtro come MainForm, salva e chiudi il formulario
  • Riaprilo in modalità modifica
  • Apri il navigatore, clic destro sul MainForm > Nuovo > Formulario
  • Clic destro su Formulario, apri la finestra della Proprietà e cambia il nome in SubForm
  • Imposta Comando SQL come Tipo Contenuto
  • Come Contenuto copia e incolla il codice sql che hai pubblicato in precedenza qui sul forum (oppure usa la procedura guidata che si apre facendo clic sul pulsantino con i puntini che è accanto per rifare il codice sql)
  • Poi trascina dalla barra degli strumenti un controllo Griglia (tabella) e imposta i campi attraverso la procedura guidata
  • Infine aggiungi il pulsante di aggiornamento.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Scusami, il "Vanigatore Formulario" dove lo trovo ?
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Ok lo dovevo attivare su Visualizza ->Barra degli strumenti -> Navigazione Formulario e poi compare l'icona con l'orologino sotto.
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

...Ok sono riuscito a fare qualcosa, la ricerca pare che funziona... se pigio il pulsante mi aggiorna le due tabelle ... ho il problema che mi da errore syntax error appena aperto. A cosa è dovuto ?
Allegati
NEW Tabella Semplice per Permutazioni con filtro2.odb
(13.86 KiB) Scaricato 77 volte
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8955
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Filtrare risultati formulari

Messaggio da charlie »

Nel codice SQL contenuto nell'ultima riga delle voci del Navigatore, dove c'è un secondo MainForm a cui non è collegato nessun oggetto del formulario (? a cosa ti serve ? lo puoi eliminare) mancano le virgolette finali dopo FILTRO".
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Hai ragione, non serve a nulla quel secondo MainForm, era il residuo di una prova. L'ho Eliminato. Ora il codice funziona bene con Libreoffice Base 6.1.3.2 (x64).

Solo 2 dubbi:
1) Quando pigo il pulsante deve venire sempre fuori la richiesta di "Vuoi salvare le modifiche" ? O si può automaticcare a si ?
2) Se do il valore "" NULLO nella ricerca, come si fa a visualizzare i risultati senza filtraggio ? Possibile ?
Allegati
NEW Tabella Semplice per Permutazioni con filtro2.odb
(14.52 KiB) Scaricato 96 volte
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8955
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Filtrare risultati formulari

Messaggio da charlie »

  1. È dovuto alla presenza di 2 subForm, si possono mettere 2 pulsanti, altrimenti ci vuole una macro.
  2. Si può fare, ma penso sia complicato con la lunghezza del codice sql che ti porti dietro :roll:
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
g_federico_g
Messaggi: 48
Iscritto il: lunedì 11 settembre 2017, 10:08

Re: Filtrare risultati formulari

Messaggio da g_federico_g »

Ok, grazie come sempre :)

RISOLTO TUTTO.
LibreOffice Versione: 6.1.3.2 (x64) su windows 10 64bit (Home)
Rispondi