Formulario di inserimento dati da query

Non sapete dove scrivere? Scrivete qui!
Regole del forum
Solo richieste di aiuto. Per saluti e presentazioni utilizzate il forum Discussioni Generali e Presentazioni.
Rispondi
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Ciao a tutti!

Chiedo aiuto per un formulario di inserimento dati in un db crerato con LibreOffice Base.

Premessa: si tratta della banca dati di una sezione locale dell'AVIS, composta essenzialmente da tre tabelle:
-l'anagrafica iscritti
-la registrazione delle donazioni effettuate dagli iscritti
-i premi assegnati agli iscritti al raggiungimento di determinati parametri;

I formulari dedicati all'inserimento dati nelle prime due non hanno problemi particolari; per quel che riguarda l'assegnazione di nuovi premi ho creato la query (anzi più di una) che presenta la lista degli iscritti a cui spetta la medaglia, quale premio gli spetta e l'anno di premiazione (quello corrente), che sono in pratica i tre campi della tabella premiazioni.
Vorrei utilizzare questa query per inserire automaticamente i dati nella tabella delle premiazioni, magari scegliendoli dalla lista.
Come posso fare?
Ultima modifica di Cinghiale78 il mercoledì 3 marzo 2021, 14:29, modificato 1 volta in totale.
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario di inserimento dati da query

Messaggio da charlie »

Ciao, per un aiuto concreto c'è bisogno del database.
Allega un esempio che non abbia dati sensibili.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Ecco l'esempio. La query Report Finale Nuove Premiazioni presenta il risultato finale di calcoli delle query precedenti.
Anche se riporta dei risultati strampalati dovuti alle donazioni fittizie, vorrei utilizzarla in qualche modo come sorgente per registrare automaticamente i dati nella tabella Premiazioni, magari avendo la possibilità di non assegnarle. Ho provato ad inserirla in un subform, ma senza successo...
Allegati
avisperforum.odb
(55.31 KiB) Scaricato 190 volte
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario di inserimento dati da query

Messaggio da charlie »

Ciao, hai fatto un labirinto di query e viste nel quale è difficile orientarsi per chi non è l'autore.
Una query, per essere editabile, richiede la presenza di tutte le chiavi primarie delle tabelle/query/viste che la compongono.
Pertanto prova ad inserirle dove mancano anche a ritroso nella ramificazione che hai impostato per arrivare alla query Report Finale Nuove Premiazioni.
Fai sapere se riesci.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

!!!!!!
Provo a raccapezzarmi... per calcolare quelle maledette premiazioni ho tentato prima un approccio "matriciale" classico, poi ho dirottato su una soluzione più in linea col db; in ogni caso ho preferito separare i compiti:
-calcolare il "diritto" ad ottenere una premiazione;
-ricapitolare le premiazioni già assegnate;
-confrontare i due risultati per avere una lista di chi premiare e con quale premio.
il tutto in mix letale di dati vecchi importati e dati nuovi in forma diversa, per cui in effetti sono coinvolte parecchie query.
Questa "lista" in ogni caso non deve essere editabile, è solo la fonte per inserire i dati nella tabella.
In un formulario di prova la lista veniva presentata correttamente e i campi da trasferire alla tabella compilati; in esecuzione restituiva un errore sql HY010.
Proverò comunque a seguire il tuo consiglio.
Grazie mille!
PS
Per curiosità, i dati sono stati importati da un foglio Excel pazzesco da 30 mb. Il file odb è 500 kb ahahahahahahah
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Ho trovato qualcosa su un forum in inglese. L'errore riguarda il formato dai dati.
In effetti, nel Report Finale creo un campo YEAR(date) per avere in automatico l'anno della premiazione. Evidentemente, quando passa il dato alla tabella utilizza un formato non gradito; infatti, se scollego il campo e inserisco l'anno manualmente funziona. Cerco di capirci qualcosa, ma anche così può andare bene.
L'unica cosa che resta da fare è aggiornare la query dopo aver salvato il record.
Un aiuto?
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario di inserimento dati da query

Messaggio da charlie »

Ho riprovato ad aprire il tuo database e per me il problema è sempre quello: per scrivere dei dati su una tabella tramite una query, questa deve essere editabile e pertanto avere al suo interno tutte le chiavi primarie delle tabelle e query che la compongono.
Nella tua query finale ci sono dentro anche delle viste che per la loro natura non sono editabili.
Mi sai dire perché fai un uso così massiccio delle viste? io ho quasi dimenticato che esistono.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Perché sono comode.
Ho anche modificato le query aggiungendo la chiavi, ma l'errore sql HY010 esce quando passo tutti i dati (3); se ne passo solo 2 e digito l'anno funziona.
Nell'allegato le query sono sempre le stesse di prima, eppure il form Premiazioni funziona. L'unica cosa che devo ancora fare è aggiornare la query dopo aver salvato il record.
Allegati
avisperforum.odb
(68.43 KiB) Scaricato 154 volte
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario di inserimento dati da query

Messaggio da charlie »

Cinghiale78 ha scritto:eppure il form Premiazioni funziona
Ho provato scrivendo un anno a caso, es. 1999. Funziona, il dato viene scritto nella tabella ma, alla successiva apertura del form, questo risulta vuoto. :roll:
Al di là di questo problema, perché non provi a sostituire alla tabella una query dove il campo Anno è sostituito da YEAR(NOW()) AS "Anno" ?
Il dato Anno non verrà mai scritto sulla tabella ma rimarrà sulla query.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Provo ancora a lavorarci sopra al problema dell'anno (strano: anche se non passo il dato e definisco nelle proprietà il campo Anno con valore predefinito 2021 mi restituisce sempre lo stesso errore sql), intanto ho trovato la soluzione per l'aggiornamento su un forum google:
https://groups.google.com/g/it-alt.comp ... bpUmZ6IIiQ

Modificando leggermente con le mia scarse conoscenze ho associato la macro aggiornando tutto il formulario alla modifica del record.

Fantastico!

Intanto metto risolto, se riesco a perfezionare la questione del campo anno aggiorno il post, altrimenti va bene così comunque.

Grazie Charlie!
Enjoy!
Ultima modifica di Cinghiale78 il giovedì 4 marzo 2021, 14:54, modificato 2 volte in totale.
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario di inserimento dati da query

Messaggio da charlie »

Hai usato una macro?
Mi dà questo errore, e non trovo macro memorizzate.
Probabilmente l'hai salvata a livello "personale" ed esportando il file si perde la macro.
Allegati
Schermata 2021-03-04 alle 07.56.12.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Cinghiale78
Messaggi: 29
Iscritto il: giovedì 25 febbraio 2021, 22:29

Re: Formulario di inserimento dati da query

Messaggio da Cinghiale78 »

Questo dovrebbe andare. La macro c'era solo nella cartella associata al db originale. Le donazioni fittizie provocano un comportamento anomalo (non è possibile che una persona faccia tutte quelle donazioni in poco tempo), comunque funziona.
Allegati
avisperforum.odb
(69.6 KiB) Scaricato 166 volte
Cinghiale 78 - LibreOffice 7.0.4.2 Windows10
Rispondi