[Risolto] Visualizzare tutti i record in formu. come in tab

Discussioni sulle caratteristiche di database
Rispondi
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

[Risolto] Visualizzare tutti i record in formu. come in tab

Messaggio da Lukaccio »

Salve ;)


Ho creato una tabella nella quale sono elencati dei clienti con nome e cognome, comune, prov, indirizzo, telefono, p iva, eccetera.

Ho creato una Query con la seguente istruzione sql : SELECT * FROM "TABELLA" WHERE "CITTA'" LIKE :X
in maniera tale che aprendo la query si apre una finestra dove inserire il parametro (nella fattispecie il nome del comune) e visualizzare quindi solo i clienti di quel comune specifico.

Ho creato poi un formulario con sotto formulario :

il formulario principale à collegato alla query
quello secondario alla tabella


Cosi facendo, aprendo il formulario mi chiede di inserire il nome del comune e mi visualizza i clienti che ho per quel comune.

Se inserisco la seguente stringa %bari mi visualizzera i clienti di bari ma anche quelli di mola di bari, ma non me li mostra tutti nella schermata ;
devo infatti utilizzare la barra di navigazione formulario sotto, per vedere in una schermata tutti quelli di bari in un'altra tutti quelli di mola di bari.

in definitiva non voglio che mi le raggruppi per comune ma che me li faccia vedere tutti insieme in una unica schermata come nella tabella sostante (dove sono ordinati per prov, comune, nome e cognome)

la cosa poi e particolarmente fastidiosa quando uso la stessa procedura su stringhe numeriche come ad esempio un numero di telefono.
Se ad esempio voglio vedere tutti i numeri di telefono dei clienti di rimini, usando prefisso% me li raggruppa uno per uno.

Cosa sto sbagliando? :crazy: :crazy: :crazy: :crazy:
Ultima modifica di Lukaccio il domenica 28 gennaio 2018, 22:59, modificato 1 volta in totale.
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Lukaccio ha scritto:Cosa sto sbagliando?
Ciao, per il momento nel non allegare il tuo file per farci capire :D .
No dati sensibili, mi raccomando.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Come dicevo :

Provare inserendo la stringa %BARI per Formulario Comune
Provare inseredo la stringa 080% per Formulario Telefono


Inoltre voi che soluzione alternativa avreste scelto?
Non si potrebbe utilizzare ad esempio una casella combinata/riepilogo (ehm io non ci sono riuscito :crazy: )?


Grazie anticipatamente :super:
Allegati
zzzzzzzz.odb
(54.49 KiB) Scaricato 114 volte
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Ciao, per cominciare prova a modificare le query:

Codice: Seleziona tutto

SELECT * FROM "TAB" WHERE "CITTA'" LIKE UPPER ( :X || '%' )
SELECT * FROM "TAB" WHERE "TELEFONO" LIKE ( :X || '%' )
In questo modo faciliti la ricerca, basta digitare anche una sola lettera della città (anche minuscola) o un solo numero per trovare dei risultati.
Per quanto riguarda la ricerca con casella di riepilogo, va impostata in altro modo. Ne possiamo riparlare.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

upper quindi fa si che mi restituisca il risultato, anche se la stringa inserita in finestra è in minuscolo, giusto?
non ho capito cosa fa, la restante parte della tua correzione :oops:


il problema è che anche cosi, non ottengo l'effetto desiderato io voglio vedere tutti i risultati in unica schermata, mentre cosi li raggruppa in sezioni differenti.
Per spiegarmi meglio io vorrei visualizzare nel formulario come me li visualizza nella query.
allego screenshot, per chiarezza.
Allegati
form2.JPG
form1.JPG
query.JPG
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Ciao,
  • UPPER serve ad accettare anche le minuscole se digitate al posto delle maiuscole per errore
  • Il resto del codice permette di digitare soltanto "B" (o "b") per avere tutte le città che cominciano per B;
    "BA" (o "Ba", "ba" "bA") per avere tutte le città che cominciano con "BA".
    Per i numeri di telefono in modo simile: "0" per avere tutti i numeri che cominciano per 0, ...
  • Dei formulari semplici (senza Form e subForm) fanno quello che chiedi: visualizzano in modo tabellare il risultato della ricerca.
  • Cosa ti serve la macro? Non è attiva, mi pare.
Allegati
zzzzzzzz2.odb
(51.98 KiB) Scaricato 110 volte
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

charlie ha scritto:Ciao,
Il resto del codice permette di digitare soltanto "B" (o "b") per avere tutte le città che cominciano per B;
"BA" (o "Ba", "ba" "bA") per avere tutte le città che cominciano con "BA" ...
Insomma userò % soltanto per estrarre i record che contengono la stringa di testo incriminata (tipo %bari per estrarre bari e mola di bari ad esempio) giusto?
charlie ha scritto:Dei formulari semplici (senza Form e subForm) fanno quello che chiedi......
ehm :crazy: gia perchè mi ero complicato la vita.....
charlie ha scritto:Per quanto riguarda la ricerca con casella di riepilogo, va impostata in altro modo. Ne possiamo riparlare.
Sarei interessato è una soluzione molti piu elegante rispetto da quella da me scelta.
Necessito imput................. ;)
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Ecco un esempio per la ricerca per città con casella di riepilogo.
Funziona fintanto che le città sono limitate, se sono troppe ... è discutibile.
Non ha senso, secondo me, farla con i numeri di telefono.
Allegati
zzzzzzzz3.odb
(60.74 KiB) Scaricato 114 volte
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Grazie :bravo: :bravo: :bravo:


Mi piace molto :super:


Vorrei capire pero come hai fatto passo dopo passo, piuttosto che usarlo cosi come l'hai fornito mi piacerebbe imparare.
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Ciao, si comincia aggiungendo una tabella, chiamata Filtro.
Poi, usando la procedura guidata, si costruisce un formulario su questa tabella ed un subformulario sulla tabella TAB. I campi di collegamento saranno C per la prima e Città per la seconda. L'aspetto sarà "modulare" per il mainform e "tabellare" per il subform.
Poi, si trasforma (clic destro) il form Filtro da campo formattato a casella di riepilogo, si abilita questa all'apertura (Apribile = si) in finestra delle Proprietà scheda Generale, e nella scheda Dati si sceglie Sql e si scrive il codice SELECT "CITTA'", "CITTA'" FROM "TAB" come contenuto. Il codice si può ricavare anche graficamente come fosse una query facendo clic sul pusantino con i puntini.
Ho corso troppo? Puoi postare il risultato che hai ottenuto?
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Non mi funziona :crazy:

Mettendo l'istruzione sql che mi hai scritto non accade nulla nel senso che la casella di riepilogo non mi fa vedere ler varie citta da selezionare per filtrare il subform.

Allora ho provato con le mie scarne conoscenze di sql, ha mettere l'istruzione select distinct "citta'" from "tab" ma mi il seguente errore :

non è stato possibile determinare il contenuto di una casella combinata o di una casella di riepilogo
colonna non trovata 3

se in tab citta è l'undicesima colonna, in campo collegato che numero devo mettere?
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Sempre il n. 1 (che è il secondo in quanto c'è anche lo zero). Ma il riferimento non è alla tabella ma la query che si genera con l'sql.
Se posti il tuo file, posso forse capire dove ti sei incagliato ...
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Ho fatto una scoperta, se uso la procedura che mi hai consigliato sul tuo file funziona perfettamente :shock:

mentre se uso la medesima procedura sul file originale che ovviamente è molto piu articolato non mi funziona e da gli errori suddetti :crazy: :crazy: :crazy: :crazy:


Ovviamente non te lo posso postare contiene dati sensibili.

Che sta succedendo? :oops: :oops: :oops: :oops:
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Lukaccio ha scritto:Ovviamente non te lo posso postare contiene dati sensibili.
Capisco.
Lukaccio ha scritto:Che sta succedendo?
Cerca di individuare le differenze.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Non e che l'errore nasce perchè il campo di collegamento ha lo stesso nome, ossia citta' potrebbe essere il motivo?

Il numero di città è molto elevato non è che quando cio' accade il sistema s'inceppa?
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Lukaccio ha scritto: non è stato possibile determinare il contenuto di una casella combinata o di una casella di riepilogo
colonna non trovata 3
Guardando più attentamente: il messaggio è preciso, c'è un nome campo sbagliato (Maiuscolo/minuscolo, lettere accentate, ....)
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Quel messaggio compare solamente quando sostituisco la tua istruzione sql :

"SELECT "CITTA'", "CITTA'" FROM "TAB"" (con la quale non mi da messaggi di errore ma semplicemente non mi mostra l'elenco delle citta')
con la mia
"SELECT DISTINCT "CITTA'" FROM "TAB""

Insomma siccome la tua non funzionava, ho provato una istruzione alternativa (ovviamente con risultati peggiori).


a proposito questo te lo chiedo solo per curosità sul SQL, perchè selezioni 2 volte la colonna città?


PS
Non è che non devono esserci gli apostrofi all'inizio e alla fine della stringa
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Lukaccio ha scritto:a proposito questo te lo chiedo solo per curosità sul SQL, perchè selezioni 2 volte la colonna città?
Ecco dov'è il problema. Lo faccio perché il campo collegato è il n. 1 (ho già detto che il n. 1 è il secondo), quindi lo raddoppio.
Si potrebbe mettere 0 come campo collegato e dovrebbe funzionare, ma in passato ho trovato questa soluzione piuttosto instabile, mi ha creato dei problemi.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

non funziona se metto come campo collegato 0 o 1 e seleziono citta 1 o 2 volte non mi mostra l'elenco delle città.
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da charlie »

Lukaccio ha scritto:Ovviamente non te lo posso postare contiene dati sensibili.
Forse puoi postarlo sostituendo la tabella con dati sensibili con un'altra con dati fittizi ....

Edit: naturalmente è possibile che io abbia commesso qualche errore nel descrivere la procedura, ma non vedo altra strada per farti andare avanti.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Visualizzare tutti i record in un formulario come in tab

Messaggio da Lukaccio »

Dopo lungo penare, ne sono venuto a capo.

In pratica funziona con l'istruzione sql :


"SELECT DISTINCT "CITTA'" FROM "TAB""

campo collegato 0.

Cosi funziona sicuro, ma forse funzionava anche prima (ho fatto tanti di quei tentativi che ormai mi sono perso).
In pratica mi sono accorto che se non si mette niente nella tabella di filtro la casella di riepilogo non mostra l'elenco delle citta inducendo erroneamente a pensare che il metodo e sbagliato.

Grazie molte :bravo: :super:
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Visualizzare tutti i record in formu. come in tab

Messaggio da charlie »

Lukaccio ha scritto:... se non si mette niente nella tabella di filtro ...
Confermo.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi