Pannello di Controllo Moderatore ]

Formulario con Query con più ricerche

Discussioni sulle caratteristiche di database

Formulario con Query con più ricerche

Messaggioda mirabellomusic » giovedì 25 giugno 2020, 16:50

Salve, vorrei poter fare una query dove oltre poter visualizzare per un determinato periodo, posso filtrare anche le altre colonne, tipo sceglimi in un periodo e le persone che hanno come operatore vodafone per esempio. Tutto in un'unica query e come fare poi il formulario di visualizzazine. Grazie
Allegati
testopenoffice.odb
(13.17 KiB) Scaricato 33 volte
Ultima modifica di charlie il lunedì 29 giugno 2020, 9:16, modificato 1 volta in totale.
Motivazione: Modificato il titolo
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Query con più ricerche

Messaggioda charlie » giovedì 25 giugno 2020, 17:02

Da digitare?
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "ID", "Nome", "Cognome", "Data di Nascita", "Operatore Telefonico" FROM "Utenti" WHERE "Data di Nascita" >= :Da AND "Data di Nascita" <= :A AND "Operatore Telefonico" = :Operatore ORDER BY "Data di Nascita" ASC, "Cognome" ASC, "Nome" ASC, "Operatore Telefonico" ASC
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Query con più ricerche

Messaggioda mirabellomusic » venerdì 26 giugno 2020, 15:48

Ciao, si da digitare. Del tipo che se scrivo su una sola casella faccio la query per quel valore, se scrivo su un'altra per quell'altro valore. Volendo se scrivo in entrambe le caselle, deve fare la query che rispetti entrambi
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Query con più ricerche

Messaggioda charlie » venerdì 26 giugno 2020, 18:42

Ciao, in quel caso la query è un po' più complicata perchè bisogna prevedere la mancata digitazione (NULL):
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "ID", "Nome", "Cognome", "Data di Nascita", "Operatore Telefonico" FROM "Utenti" WHERE ("Data di Nascita" >= :Da OR :Da IS NULL) AND ("Data di Nascita" <= :A OR :A Is NULL) AND ("Operatore Telefonico" = :Operatore OR :Operatore IS NULL) ORDER BY "Data di Nascita" ASC, "Cognome" ASC, "Nome" ASC, "Operatore Telefonico" ASC
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Query con più ricerche

Messaggioda mirabellomusic » domenica 28 giugno 2020, 11:02

buongiorno, però mi serve con un formulario dove ci sono le caselle.
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Query con più ricerche

Messaggioda charlie » domenica 28 giugno 2020, 11:37

Si costruisce con pochi clic.
Allegati
testopenoffice_2.odb
(20.99 KiB) Scaricato 26 volte
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Query con più ricerche

Messaggioda mirabellomusic » domenica 28 giugno 2020, 12:11

Scusami, ma se inserisco vodafone nel formulario ricerca, non mi mostra niente. Io vorrei fare con le caselle in modo tale da poter cambiare i filtri quando voglio, non che devo chiudere e riaprire ogni volta.
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Query con più ricerche

Messaggioda mirabellomusic » domenica 28 giugno 2020, 12:14

E comunque, il codice da lei sopra inviato non funziona. Se non inserisco un valore mi da errore.
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Query con più ricerche

Messaggioda charlie » domenica 28 giugno 2020, 17:47

Funziona in LibreOffice, ho dimenticato di testarla in Open Office nel quale ignoro perché non vada (ma non mi preoccupo).
Comunque allego una nuova versione che spero sia più rispondente a quanto hai chiesto.
Allegati
testopenoffice_3.odb
(22.83 KiB) Scaricato 36 volte
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Query con più ricerche

Messaggioda mirabellomusic » lunedì 29 giugno 2020, 8:01

Ciao, è perfetto così. Ora devo provare ad applicarlo sul mio vero database. Puoi farmi una sorta di procedura da seguire?
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » lunedì 29 giugno 2020, 9:36

  • Per prima cosa devi creare una tabella di appoggio (Filtro) con la stessa tipologia dei campi da cercare.
  • Su questa tabella si costruisce il MainForm. Io uso questa tecnica (in generale):
    • con pochi clic di procedura guidata creo un formulario con i campi di default.
    • Poi lo apro in modifica e provvedo a rendere 'apribili' i campi tipo Data, a convertire (clic destro > sostituisci con) i campi tipo Testo e Numerici in Caselle di riepilogo.
    • Poi rendo queste ultime 'apribili' e le collego con SQL alle rispettive tabelle da cui attingere i dati.
  • Successivamente aggiungo un SubForm (tramite il Navigatore) a forma 'tabellare' (griglia) costruito sulla Query di ricerca con 'parametri' (quelli con i duepunti, es. ":Da". ":A". ":Operatore").
  • Il collegamento 'Collega da/Collega per' viene impostato con i nomi campo della tabella Filtro da una parte e con i 'parametri' stessi (senza duepunti) dall'altra, cioè la Query.
  • Completa il tutto un pulsante che aggiorna il SubForm ad ogni nuova ricerca
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 30 giugno 2020, 18:35

Ciao, quindi nella query della ricerca nella where devo analizzare tutte quelle ipotesi?
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 30 giugno 2020, 18:39

poiché nel db reale sono tipo 6-7 le caselle da cui posso ricercare
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » martedì 30 giugno 2020, 18:59

Certo, devi prevedere nella tabella Filtro tanti campi quanti sono i campi da cercare (per la data di nascita sono 2 per poter impostare Da ... A) e altrettante condizioni nella query di ricerca.
Un consiglio? Prova ad aggiungerne uno alla volta e verificare ogni volta il risultato.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 30 giugno 2020, 19:06

Il problema è che bisogna fare una formula matematica per vedere quante condizioni OR devo fare. Non sarà facile. Comunque ho un problema. Mi da questo errore con il db reale.
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 30 giugno 2020, 19:08

Questo è l'errore. Ho controllato e la colonna si chiama proprio così. Dice tipo errore -28
Allegati
Annotazione 2020-06-30 190805.png
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » martedì 30 giugno 2020, 19:16

Da quello che posso capire hai scritto "Reparto " e non "Reparto". C'è uno spazio di troppo.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 30 giugno 2020, 20:22

Ho risolto questo errore, ma se metto solo reparto mi da un java lang exception.
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "Storico"."Giorno" AS "Giorno", "Storico"."Reparto " AS "Reparto", "Storico"."Pattuglia" AS "Pattuglia", "Storico"."Capo Pattuglia" AS "Capo Pattuglia", "Storico"."C.E.T.E. (N.)" AS "C.E.T.E. (N.)" FROM "Storico" "Storico" WHERE "Giorno" >= :Da AND "Giorno" <= :A AND "Reparto" = :Reparto OR "Giorno" >= :Da AND "Giorno" <= :A AND :Reparto IS NULL OR "Giorno" >= :Da AND :A IS NULL AND :Reparto IS NULL OR :Da IS NULL AND :A IS NULL AND :Reparto IS NULL OR :Da IS NULL AND "Giorno" <= :A AND "Reparto" = :Reparto OR :Da IS NULL AND "Giorno" <= :A AND :Reparto IS NULL OR :Da IS NULL AND :A IS NULL AND "Reparto" = :Reparto ORDER BY "Storico"."Giorno", "Storico"."Reparto ", "Storico"."Pattuglia", "Storico"."C.E.T.E. (N.)"
Ultima modifica di charlie il martedì 30 giugno 2020, 21:07, modificato 1 volta in totale.
Motivazione: Formattato codice
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » martedì 30 giugno 2020, 21:21

Per favore, formatta il codice che posti fra i tag
Codice: Seleziona tutto   Espandi visualeStringi visuale
[code][/code]
, altrimenti vengono fuori delle faccine :D .

Credo tu abbia un po' pasticciato con il codice. Dovrebbe essere:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT "Storico"."Giorno" AS "Giorno", "Storico"."Reparto " AS "Reparto", "Storico"."Pattuglia" AS "Pattuglia",
"Storico"."Capo Pattuglia" AS "Capo Pattuglia", "Storico"."C.E.T.E. (N.)" AS "C.E.T.E. (N.)"
FROM "Storico" "Storico"
WHERE ("Giorno" >= :Da  OR :Da IS NULL)
AND ("Giorno" <= :A OR :A IS NULL)
AND ("Reparto" = :Reparto OR :Reparto IS NULL)
ORDER BY "Storico"."Giorno", "Storico"."Reparto ", "Storico"."Pattuglia", "Storico"."C.E.T.E. (N.)"

Ho messo delle parentesi e degli 'a capo' per farlo vedere meglio.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » mercoledì 1 luglio 2020, 13:25

ciao, anche copiando questo codice mi lancia un java lang exception
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » mercoledì 1 luglio 2020, 14:04

Darti ancora consigli al buio non è il caso. Ci vuole il tuo file.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » mercoledì 1 luglio 2020, 15:27

SELECT "Storico"."Giorno" AS "Giorno", "Storico"."Reparto " AS "Reparto", "Storico"."Pattuglia" AS "Pattuglia", "Storico"."Capo Pattuglia" AS "Capo Pattuglia", "Storico"."C.E.T.E. (N.)" AS "C.E.T.E. (N.)"
FROM "Storico" "Storico"
WHERE ( "Giorno" >= :Da OR :Da IS NULL )
AND ( "Giorno" <= :A OR :A IS NULL )
AND ( "Reparto" = :Reparto OR :Reparto IS NULL )
ORDER BY "Storico"."Giorno", "Storico"."Reparto ", "Storico"."Pattuglia", "Storico"."C.E.T.E. (N.)"
Se inserisco una sola delle 3 cose mi dice java illegal argument exception
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » mercoledì 1 luglio 2020, 15:27

Purtroppo come puoi anche vedere dai nomi delle colonne, è un db che non posso condividere.
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » mercoledì 1 luglio 2020, 16:07

Fai una copia, cancella tutti i dati delle tabelle e metti 2 o 3 record con dati fittizi.


charlie ha scritto:Per favore, formatta il codice che posti fra i tag
[code][/code]
, altrimenti vengono fuori delle faccine .

Schermata 2020-07-01 alle 16.05.49.png
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda charlie » mercoledì 1 luglio 2020, 18:08

Lascia perdere ....
In LibreOffice funziona tutto, è un problema di Open Office.
Per ora non ho tempo di occuparmi del problema delle differenze fra i due, se vuoi proseguire scarica ed installa LibreOffice.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » giovedì 2 luglio 2020, 18:21

Non si può risolvere in nessun modo? Devo per forza usare Open
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Re: Formulario con Query con più ricerche

Messaggioda charlie » giovedì 2 luglio 2020, 19:13

Prova ad usare
Codice: Seleziona tutto   Espandi visualeStringi visuale
=''
(due apici semplici o apostrofi) al posto di
Codice: Seleziona tutto   Espandi visualeStringi visuale
IS NULL

Fammi sapere, grazie.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda charlie » venerdì 3 luglio 2020, 8:44

Lascia stare, non funziona.
Fatto delle prove
Codice: Seleziona tutto   Espandi visualeStringi visuale
=''
va bene per le stringhe,
Codice: Seleziona tutto   Espandi visualeStringi visuale
=0
va bene per i numeri.
Ma ... con le date?
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda charlie » domenica 5 luglio 2020, 9:35

La soluzione da provare potrebbe essere questa:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SELECT * FROM "Storico"
WHERE ( CAST( "Giorno" AS CHAR ) BETWEEN :DateFrom AND :DateTo OR IFNULL( :DateFrom, '' ) = '' OR IFNULL( :DateTo, '' ) = '' )
AND ( "Reparto" = :Reparto OR :Reparto ='' )

Ma le date devono essere nel formato inglese AAAA-MM-GG. Se usate con il formulario non è un problema, il calendario è nel formato consueto.
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Formulario con Query con più ricerche

Messaggioda mirabellomusic » martedì 7 luglio 2020, 17:26

grazie mille, ci sono riuscito. Volevo sapere, è possibile stampare il formulario con i valori all'interno?
Edit: comunque sto lavorando ad una nuova versione, s puoi aspettare ....
Open Office 4.1.7
mirabellomusic
 
Messaggi: 53
Iscritto il: venerdì 12 giugno 2020, 12:26

Prossimo

Torna a Base

Chi c’è in linea

Visitano il forum: Google [Bot] e 7 ospiti