Selezionare dati da una tabella all'interno di un form

Discussioni sulle caratteristiche di database
Rispondi
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Ciao a tutti,
sto creando un DB su una collezione e vorrei fare in modo che all'interno di un form si possano reperire alcuni dati prendendoli da un'altra tabella.
Formulario.png
Quello che mi succede, però, è che nella tabella all'interno del formulario mi fa vedere tutti i record. Io invece vorrei solo poter selezionare quelli che mi interessano, che possono essere più di uno ma comunque diversi tra loro.
Ringrazio coloro che vorranno aiutarmi.
Saluti
Allegati
Bolli_Prova.odb
(78.05 KiB) Scaricato 130 volte
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da unlucky83 »

Dovresti essere più specifico perchè ci sono vari modi e dipende dal modo in cui vuoi "filtrare" i record della tabella.
Potresti creare un sottoformulario collegato ad un primo formulario in cui usi un campo per filtrare la tabella. Oppure potresti creare un formulario per il filtraggio che va a impostare una tabella contenente i dati di ricerca con la quale costruire una query alla base della tabella...
Questi sono due metodi che in passato ho usato, che non sono intercambiabili...dipende tutto dalla struttura del database e dal tipo di filtro che vuoi attuare.

p.s.
con base sono poco preparato e i miei tempi di risposta a risolvere questioni specifiche potrebbero essere estremamente lunghi. Sono graditi altri partecipanti
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

C'è anche una macro, cosa ti serve se non è associata ad alcun evento?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Grazie per le prime risposte ricevute, cerco di spiegarmi meglio.
Il DB è composto da due sezioni principali, una riguarda la catalogazione dei timbri e un'altra l'archivio dei documenti sui quali i timbri sono apposti.
Per la prima parte ho realizzato il formulario "Bolli Comuni" nella cui tabella sono riportati tutti e timbri e le combinazioni possibili divise per Comune.
Formulario_Bolli.png
I miei problemi nascono per le realizzazione del secondo formulario, quello dell'archivio documenti.
Formulario_Documento_Modifica.png
In questo formulario, oltre ad inserire una serie di dati utili presi anche da altre tabelle, vorrei poter inserire le varie tipologie di timbri presenti su ogni documento.
Questi dati si trovano sulla tabella precedente, pensavo quindi di inserire una tabella all'interno del formulario dove andare a riprendere i dati che mi interessavano.
Ogni Documento avrà almeno uno dei record presenti nella tabella "Bolli Comuni", ne potrebbe avere anche più di uno, ma non può avere lo stesso ripetuto più volte.
Più documenti possono invece avere la stessa tipologia di bolli.
La tabella che ho inserito, però, non mi dà la possibilità di inserire i record che mi interessano, ma si limita a farmi vedere tutti i record presenti nella tabella "Bolli Comuni"
Formulario_Documento_Inserimento.png
Come posso fare per risolvere il problema?
Spero di essere stato più chiaro.
Grazie e saluti
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

lleigor ha scritto:Spero di essere stato più chiaro
Purtroppo no.
Lascia perdere le figure e riferisciti ai formulari e alle tabelle con il nome che hanno nel database.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Vediamo se riesco a spiegarmi meglio
Nel Formulario "Documento" vorrei inserire una tabella i cui dati vengano estrapolati dalla Tabella "Bolli Comuni"

La cosa può essere paragonata alla gestione di un ordine di materiale il cui elenco di oggetti viene preso da un magazzino.

Spero di essere stato più chiaro rispetto a prima.
Grazie
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

lleigor ha scritto:Nel Formulario "Documento" vorrei inserire una tabella i cui dati vengano estrapolati dalla Tabella "Bolli Comuni"
Mi pare che tutto il formulario sia già basato sulla tabella Bolli Comuni.
Allegati
Schermata 2020-03-28 alle 18.33.12.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Ho riportato il Formulario "Documento" sotto la Tabella "Documento".
Ora non vedo più tutti i campi della Tabella "Bolli Comuni" come accadeva prima ma non me ne fa selezionare nemmeno uno.
Allego nuova versione del DB
Allegati
Bolli_Prova_01.odb
(78.02 KiB) Scaricato 120 volte
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Scusa ma faccio fatica a seguirti, è sicuramente un limite mio ma se vuoi essere aiutato devi aiutare me :D .
Nel primo db allegato avevi Bolli comuni come MainForm ed anche coma SubForm. Non andava bene.
Nel secondo db allegato hai ora Documento come MainForm (anche se lo hai chiamato SubForm !) e Bolli comuni come SubForm. Ma Documento è una tabella vuota (quasi, ha un solo campo ed un solo record riempiti) e Bolli comuni deve avere un campo collegato per funzionare.
Schermata 2020-03-29 alle 15.48.13.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Scusa se non riesco a farmi capire, tutto nasce dalla mia scarsissima conoscenza dei DB e delle relazioni all'interno di questi.
Provo a ripartire dall'inizio esponendo la mia necessità e cercare la strada migliore per ottenere il risultato.
Nel formulario "Documenti" devo inserire una serie di dati presi da altre Tabelle.
Alcuni di questi dati sono dati "singoli" ad esempio dalla Tabella "Documento Tipo", tramite una casella di riepilogo, selezionerò la tipologia di documento che mi interessa.
Altri dati che vorrei inserire, invece, sono "multipli" e devo riuscire a recuperarli dalla Tabella "Bolli Comuni".
Vorrei quindi che nel Formulario "Documenti" ci fosse un'area dove poter ricercare e selezionare zero o più record presenti nella Tabella "Bolli Comuni", facendo anche in modo che alcuni (non tutti, quindi) dei campi presenti nella Tabella "Bolli Comuni" siano visibili nel Formulario.
Io pensavo di fare questo inserendo una Tabella all'interno del Formulario "Documento", ma non riesco ad ottenere il risultato voluto.
Spero di averti dato le informazioni che ti servono per potermi aiutare
Intanto ti ringrazio.
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Ok, credo di aver capito. Ci aggiorniamo ad appena possibile.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

charlie ha scritto:Ok, credo di aver capito. Ci aggiorniamo ad appena possibile.
GRAZIE!!!!
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Ciao, ho cominciato:
lleigor ha scritto:Nel formulario "Documenti" devo inserire una serie di dati presi da altre Tabelle.
L'ho rifatto nuovamente (quello esistente era basato sulla tabella Bolli comuni e non sulla tabella Documenti).
Non guardare all'aspetto, ho utilizzato la procedura guidata per brevità.
Però mi rimane da assegnare Bollo/Annullo. Temo sia un doppione di Tipo Bollo/Annullo, sbaglio?

Poi vorrei sapere quali campi provenienti dalla tabella Bolli comuni vuoi aggiungere. Se interpreto bene la tabella che avevi inserito nel vecchio formulario: Comune e Tipo Bollo (ma in Documenti ci sono già, quindi non servono) e poi Apposizione. Altri?
Importante, per aggiungere questi campi è necessario relazionare le 2 tabelle tramite un campo comune univoco. Mi pare che al momento non ci sia.
Allegati
Bolli_Prova_02odb.odb
(87.98 KiB) Scaricato 93 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

"Bollo/Annullo" avrebbe dovuto essere l'"IDBolli Comuni" della Tabella "Bolli Comuni", almeno nella mia testa :( :( :(
In realtà i campi "Tipo Bollo/Annullo", "Comune" e "Apposizione" dovrebbero essere presi TUTTI dalla Tabella "Bolli Comuni" senza la necessità di inserirli nuovamente nel formulario, dovrebbero uscire in automatico una volta selezionato l'"IDBolli Comuni".
Oltre a questi campi dalla Tabella "Bolli Comuni" devo far visualizzare anche il campo "Nome Bollo"
Per completare il discorso su questi campi, nella Tabella "Bolli Comuni", "Tipo Bollo/Annullo", "Comune" e "Apposizione", sono tutti campi presi da altre tabelle, quindi degli ID, mentre io nel Formulario "Documento" vorrei poter visualizzare non i numeri ma i testi corrispondenti. Secondo te è fattibile?
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Sinceramente mi sono perso ...
Esaminando alcune relazioni mi accorgo che alcuni campi sono presenti sia nella tabella Documento sia nella tabella Bolli Comuni. Devi eliminarli nell'una o nell'altra.
Allegati
Schermata 2020-03-31 alle 09.59.03.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Ho fatto io.
Ora c'è una query (Ricerca1) che viene poi collegata al formulario principale (Documento) visualizzando i campi prelevati da Bolli comuni.
I campi vengono mostrati sia in forma tabellare che modulare (scegli quello che ti piace).
Naturalmente tutto è legato ai valori da me arbitrariamente inseriti come IDBolliComuni nella tabella Documento.
Allegati
Bolli_Prova_03.odb
(89.13 KiB) Scaricato 97 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

La versione tabellare è quella che volevo fare, grazie!
Ho provato a inserire un nuovo record o a modificare uno di quelli fatti da te ma non riesco a immettere/modificare nessun campo della nuova tabella né dei campi sottostanti, come mai?
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Vedi modifiche.
Allegati
Bolli_Prova_04.odb
(89.12 KiB) Scaricato 102 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Ok, così funziona ma posso inserire solo un record all'interno della tabella, per aggiungere o cancellare rrecord, considerando anche il fatto che il campo potrebbe dover essere lasciato vuoto in alcuni casi, devo aggiungere altri pulsanti?
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

  • Il record della griglia (Ricerca1, la query fatta sulla tabella Bolli comuni) è sempre unico perché viene assegnato tramite l'IDBolliComuni che è chiave primaria nella tabella Bolli comuni. (Per definizione la chiave primaria è univoca).
    Per questo motivo avevo messo la versione "modulare" visto che quella "tabellare" sarà sempre ad una sola riga.
  • Si può creare un nuovo record nel formulario Documenti, usando il pulsantino preposto della barra di navigazione, e lasciare vuoti i campi della griglia, cioè nessun dato associato dalla tabella Bolli comuni.
  • Si può cancellare un record usando il pulsantino preposto della barra di navigazione, una finestra di dialogo chiederà conferma.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Io ho la necessità di poter assegnare più "Bolli Comuni" all'interno di un "Documento", non c'è quindi la possibilità di farlo in questo modo.
Esiste qualche altro strumento che mi consenta di farlo?

Concettualmente è come se io dovessi compilare un ordine di materiale in cui il mio "Documento" corrisponderebbe al nr. di ordine e i miei "Bolli Comuni" corrisponderebbero agli articoli da inserire.
Spero di essere stato abbastanza chiaro.

Grazie comunque per tutti gli sforzi che stai facendo per aiutarmi.
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Bisogna individuare un campo nella tabella Bolli comuni che non sia la chiave primaria.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

charlie ha scritto:Bisogna individuare un campo nella tabella Bolli comuni che non sia la chiave primaria.
Che ne dici se si inserisse un ulteriore nr. progressivo? (oltre all'ID)
Si potrebbe fare in modo che esca in automatico al salvataggio di ogni record?
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Lavori in corso.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Eccomi qua, c'è voluto molto lavoro. Ne ho approfittato per smanettare un po' con le macro e cercare (finalmente) di capirci qualcosa. È stato un utile esercizio più proficuo di uno studio teorico :D .
In pratica, visto che le voci provenienti da Bolli comuni potevano essere multiple ho dovuto aggiungere una tabella chiamata Bis che le contenesse. Nel formulario questa tabella è relazionata tramite la chiave primaria IDDocumento della tabella Documento e la chiave Documento ID della tabella Bis. Quindi per ogni IDDocumento possono esserci uno o più DocumentoID.
Tutto il lavoro lo fa l'unica macro a cui è associato il pulsante Copia . Nella maschera di sinistra, si seleziona un documento esistente o se ne crea uno nuovo con dati inseriti a mano o, dove possibile, attinti tramite caselle di riepilogo.
Se si desidera aggiungere al documento qualcuna delle voci Nome, Comune, Apposizione, basterà selezionare la riga corrispondente nella griglia inferiore (Bolli comuni) e fare clic sul pulsante. I valori prescelti compaiono nella griglia a destra.
(Tipo rimane sempre vuoto perché non ho individuato quale valore immettere).
Allego un nuovo file dove c'è solo quello che è servito a me.
L'aspetto del formulario è soddisfacente sul mio monitor a 27", sul tuo potrebbe non esserlo.
Probabilmente la macro non è delle più ortodosse sotto il profilo della forma, ma funziona.
Allegati
Bolli_Prova_05.odb
(35.51 KiB) Scaricato 96 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

L'aspetto mi piace molto però non mi funziona.
Da quello che ho capito dovrei selezionare la riga della griglia in basso, fare clic su copia e automaticamente dovrebbe comparirmi una riga sulla griglia a dx con i dati evidenziati (ho descritto meglio la colonna Tipo così da farti capire qual è il dato da andare a cercare nella Tabella Bolli Comuni), purtroppo però quando clicco non accade nulla.
Ho sistemato un po' il layout del formulario e compilato il primo record, anche per farti capire quale sarà il risultato finale.
Allego l'ultima versione
Penso che ci siamo quasi.
GRAZIE
Allegati
Bolli_Prova_06.odb
(35.66 KiB) Scaricato 93 volte
LibreOffice 6.2.0.3 (x64) Su Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da charlie »

Ciao, ma come sono le tue impostazioni per l'esecuzione delle macro?
Strumenti > Opzioni > LibreOffice > Sicurezza > Sicurezza delle macro > Medio.
All'apertura del file, rispondi Abilita macro nella finestra di dialogo che compare?
A me il file funziona, anche nell'ultima versione da te allegata.
Ora ho aggiunto anche il Tipo.
Allegati
Bolli_Prova_07.odb
(35.8 KiB) Scaricato 134 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
lleigor
Messaggi: 40
Iscritto il: domenica 6 ottobre 2013, 9:39

Re: Selezionare dati da una tabella all'interno di un form

Messaggio da lleigor »

Avevi ragione dovevo abilitare le macro.
Ho apportato un paio di modifiche ed adesso funziona perfettamente.
Quindi questo problema è risolto.
Grazie per l'aiuto e la pazienza.
LibreOffice 6.2.0.3 (x64) Su Windows 10
Rispondi