Database inserimento clienti

Discussioni sulle caratteristiche di database
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Database inserimento clienti

Messaggio da nemo93 »

Buongiorno, è la prima volta che mi cimento in un lavoro del genere, vi chiedo quindi scusa in anticipo per tutti gli errori che commetto :P
Vengo subito al dunque: sto creando un database per l'acquisizione di nuovi clienti, la mia idea è quella di creare 3 diverse tabelle e relazionare la voce "Azienda" con i vari servizi (presenti nell'apposita tabella) e le date di acquisizione e di fine rapporti (presenti in un altra tabella).
Ho poi creato la maschera, però qui ho avuto i primi problemi...
Ho impostato in modo che le date non debbano essere scritte ma visualizzando un calendario... Non riesco a capire il perché ma la freccia verso il basso mi appare, però se ci clicco non esce il calendario...
Inoltre, sempre nella maschera, ho impostato la voce ID come "combo box" (per poter visualizzare tutti i servizi senza dover scrivere a mano) anche in questo caso se clicco sulla casella corrispondente non esce nulla...
Dove e cosa ho sbagliato?
Allegati
Soa&Imprese.odb
(14.81 KiB) Scaricato 170 volte
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
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: Database inserimento clienti

Messaggio da charlie »

Ciao, devi rivedere il concetto di relazione.
Schermata 2018-01-31 alle 14.20.50.png
  1. Hai messo in relazione un campo tipo testo (Clienti.Azienda) con 2 campi tipo data (Datazione.Data Acquisizione e Datazione.Data fine Rapporto). Non potrà mai funzionare, un nome azienda uguale ad una data?.
  2. Hai messo in relazione un campo tipo testo (Clienti.Azienda) di una tabella con 10 campi tipo testo di un'altra (Servizi.Ricerca Gara, ...). Significa che la relazione funzionerà quanto tutti i record degli 11 campi saranno uguali. Non credo sia questo che volevi.
Edit: forse ti servono relazioni tipo queste (aggiungendo opportuni campi nelle tabelle):
Schermata 2018-01-31 alle 14.36.58.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Dovrei quindi rivedere le relazioni? dato che ogni azienda avrà una data di fine rapporti, pensavo di metterle in relazione in questo modo... ho sbagliato dall'inizio allora
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Ci siamo incrociati, guarda su.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Ho modificato le relazioni, come mi hai consigliato ma, continuo a non poter selezionare le 3 caselle...
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

nemo93 ha scritto:Ho impostato in modo che le date non debbano essere scritte ma visualizzando un calendario... Non riesco a capire il perché ma la freccia verso il basso mi appare, però se ci clicco non esce il calendario...
Il formulario lavora sulla query e serve per scrivere i dati (le date) sulle tabelle che compongono la query. Condizione necessaria perché ciò avvenga è che nella query siano presenti tutti gli ID delle tabelle (non occorre che ci siano nel formulario).
nemo93 ha scritto:Inoltre, sempre nella maschera, ho impostato la voce ID come "combo box" ....
Hai impostato gli ID delle tabelle con Valore automatico= Sì (autoincremento), pertanto non è possible scriverci su.
Ed inoltre, per la ricerca attraverso Listbox (no Combobox), ti devi avvalere di una tabella Filtro esterna che punti al campo della query da ricercare.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Stavo pensando... Se riducessi a 2 le tabelle, la tabella "clienti" (contenente "data acquisizione" e "data fine rapporto") e la tabella "Servizi", e mettessi in relazione gli ID? (impostando sempre gli id come chiave primaria ma non con incremento automatico) alleggerirei un pò il carico, giusto?
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Non mi è chiaro a cosa ti serve la tabella Servizi, anche perché non hai ancora inserito dati.
Ma io farei anche una tabella unica Clienti, con l'aggiunta delle date e tanti campi tipo booleano per i sevizi relativi a ciascun cliente.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Al momento avrei impostato così le relazioni
Al momento avrei impostato così le relazioni
Ho pensato di inserire la tabella "servizi" perché vorrei, nel momento in cui inserisco i dati, poter selezionare da un menù a tendina il tipo di servizio richiesto dal determinato cliente. Ogni servizio ha una determinata scadenza, vorrei poi impostare una query che mi avvisi (e mi faccia vedere il contatto) a un TOT di giorni dalla scadenza.
Potrei rendere l'anagrafica "Clienti" la tabella madre, e relazionarla con la tabella "Servizi" e "Anagrafica azienda" (relazionate anche loro).
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Da quello schema relazioni non si capisce con quali campi sono fatte.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Hai ragione, cosa, comunque con le chiavi secondarie “id_anagrafica clienti” (presente in “anagrafica azienda” e “id_anagrafica azienda” presente in servizi, relazionati con gli ID di partenza delle tabelle
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Ho difficoltà a seguirti, posta per favore il database modificato con qualche dato inserito (fittizio).
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Eccolo, ripeto è la prima volta che mi cimento in un lavoro del genere, sono veramente un dilettante allo sbaraglio, tu ringrazio per la pazienza e i consigli che mi stai dando
Allegati
SOA&Imprese.odb
(14.11 KiB) Scaricato 107 volte
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

  • charlie ha scritto:Il formulario lavora sulla query e serve per scrivere i dati (le date) sulle tabelle che compongono la query. Condizione necessaria perché ciò avvenga è che nella query siano presenti tutti gli ID delle tabelle (non occorre che ci siano nel formulario).
  • charlie ha scritto:Hai impostato gli ID delle tabelle con Valore automatico= Sì (autoincremento), pertanto non è possible scriverci su.
    Ti sei ripetuto, mi sembra.
  • Volevo dei dati anche nella tabella Servizi, per vedere come la usi, poi posso darti consigli ulteriori.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

In servizi non vanno inseriti dati, mi serve solo sapere che la determinata azienda ha scelto quel servizio (uno o più)
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Ancora una cosa, in che rapporto sono le aziende con i clienti? In altre parole: i clienti sono il "contatto" di ogni azienda? O abbiamo più aziende con più clienti? Non si capisce ....
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Il cliente è il riferimento dell’azienda
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Io lo farei così.
N.B. Le date sono apribili con menu a tendina.
Allegati
SOAImprese_2.odb
(13.72 KiB) Scaricato 122 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Eccomi, ti ringrazio per l'aiuto,
Ora ho un ultimo dubbio, devo impostare una query che mi avvisi a un determinato numero di giorni dalla scadenza di alcuni servizi. quindi dovrei usare il parametro =DATA.DIFF(""), ho provato a scrivere una cosa del genere: =DATA.DIFF("-90"; "Data_Fine_Rapporto"; "d)" per avere un allerta a 90 giorni dal termine. Penso di scrivere le regole sotto ogni determinato servizio del quale necessito di essere avvisato a 90gg dal termine ma, quando tento di rendere attiva la regola ricevo il seguente messaggio:
"il criterio inserito non può essere confrontato con questo campo".
Ora non riesco a capire se ho sbagliato io nella sintassi o cosa possa aver sbagliato
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

La corretta sintassi della funzione è questa:

Codice: Seleziona tutto

DATEDIFF('dd',data, NOW ())<= 90
dd deve rimanere così (significa giorni)
data è il tuo campo data
NOW () è la data odierna o, meglio, quella del giorno in ciu viene calcolato il confronto
90 è il valore in giorni che deve soddisfare la funzione.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Correggendo la sintassi come mi hai indicato continuo a ricevere il messaggio che dicevo prima
Allegati
Per intenderci la sintassi l'aggiungo in questo campo
Per intenderci la sintassi l'aggiungo in questo campo
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

Da quel po' che vedo, (preferirei vedere il codice SQL o avere il file al posto dell'immagine):
  1. al posto di 'data' devi usare il tuo nome campo
  2. la sintassi va completata usando un'opportuna espressione CASE WHEN
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Sia che scrivo: =DATE.DIFF('dd',Ricerca_Gara, NOW ())<= 90 o =DATE.DIFF('dd',Data_Fine_Rapporto, NOW ())<= 90, ricevo il messaggio:
"il criterio inserito non può essere confrontato con questo campo". il codice SQL non me lo fa visualizzare con la funzione inserita, senza criterio è questo:
SELECT "Anagrafica Cliente"."Nome", "Anagrafica Cliente"."Cognome", "Anagrafica Cliente"."Cell", "Anagrafica Cliente"."Email", "Anagrafica Azienda"."Nome Azienda", "Anagrafica Azienda"."Data Fine Rapporto", "Anagrafica Azienda"."Ricerca Gara", "Anagrafica Azienda"."Attestazione SOA", "Anagrafica Azienda"."Polizze/Assicurazioni", "Anagrafica Azienda"."Albofornitori", "Anagrafica Azienda"."Certificazioni ISO", "Anagrafica Azienda"."Consorzio", "Anagrafica Azienda"."Note" FROM "Anagrafica Azienda", "Anagrafica Cliente" WHERE "Anagrafica Azienda"."ID_Cliente" = "Anagrafica Cliente"."ID".
Ci sono alcuni servizi che hanno una determinata scadenza, altri servizi non hanno scadenza, quindi nella query ho selezionato i 6 servizi che hanno scadenza, in più i vari dati di riferimento (nome, cognome, nome azienda cell e data scadenza), io penso (però potrei sbagliare), che la funzione vada inserita alla voce: "criterio" sotto il servizio di cui necessito essere avvisato a 90 giorni dal termine. Avviando la query vedrò solo i clienti che hanno scelto quel tipo di servizio che sono in scadenza di contratto
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

nemo93 ha scritto:Ci sono alcuni servizi che hanno una determinata scadenza, altri servizi non hanno scadenza, quindi nella query ho selezionato i 6 servizi che hanno scadenza
Da come è stato impostato il database i servizi ci sono o non ci sono, non sono collegati con nessuna data.

Comunque una query funzionante per vedere le aziende con Data Fine Rapporto in scadenza (<= 90 gg.) potrebbe essere questa:

Codice: Seleziona tutto

SELECT "Anagrafica Azienda"."Nome Azienda", "Anagrafica Azienda"."Data Acquisizione", "Anagrafica Azienda"."Data Fine Rapporto", "Anagrafica Azienda"."Ricerca Gara", "Anagrafica Azienda"."Attestazione SOA", "Anagrafica Azienda"."Avvallamenti", "Anagrafica Azienda"."Subappalto", "Anagrafica Azienda"."Polizze/Assicurazioni", "Anagrafica Azienda"."Ricorsi", "Anagrafica Azienda"."Albofornitori", "Anagrafica Azienda"."RTI-RPT", "Anagrafica Azienda"."Certificazioni ISO", "Anagrafica Azienda"."Consorzio", "Anagrafica Cliente"."Nome", "Anagrafica Cliente"."Cognome", "Anagrafica Cliente"."Codice Fiscale", DATEDIFF( 'dd', NOW( ), "Data Fine Rapporto" ) AS "Scadenza < 90 gg." FROM "Anagrafica Azienda", "Anagrafica Cliente" WHERE "Anagrafica Azienda"."ID_Cliente" = "Anagrafica Cliente"."ID" AND DATEDIFF( 'dd', NOW( ), "Data Fine Rapporto" ) <= 90
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Scade il periodo di un determinato servizio, questo è il senso del DB che sto creando, comunque ho provato a impostare così:

Codice: Seleziona tutto

SELECT "Anagrafica Cliente"."Nome", "Anagrafica Cliente"."Cognome", "Anagrafica Cliente"."Cell", "Anagrafica Cliente"."Email", "Anagrafica Azienda"."Nome Azienda", "Anagrafica Azienda"."Data Fine Rapporto", "Anagrafica Azienda"."Attestazione SOA", "Anagrafica Azienda"."Polizze/Assicurazioni", "Anagrafica Azienda"."Albofornitori", "Anagrafica Azienda"."Certificazioni ISO", "Anagrafica Azienda"."Consorzio", "Anagrafica Azienda"."Note", DATEDIFF( 'dd', NOW( ), "Data Fine Rapporto" ) AS "Scadenza < 90 gg." FROM "Anagrafica Azienda", "Anagrafica Cliente" WHERE "Anagrafica Azienda"."ID_Cliente" = "Anagrafica Cliente"."ID" AND DATEDIFF( 'dd', NOW( ), "Data Fine Rapporto" ) <= 90
Questo perché ho 5 servizi che vanno rinnovati entro 90gg dalla scadenza del contratto (il contratto dura circa 3 anni, quindi ho bisogno di avvisare la determinata azienda a 90gg dal termine di rinnovare il contratto).
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Alla fine ho impostato tutto così, sembrerebbe funzionare bene, cosa ne pensi? Le query andrebbero impostate per le due scadenze.
Chiaramente se secondo te andrebbe modificato qualcosa dimmi tutto
Allegati
SOAImprese_2.odb
(74.79 KiB) Scaricato 106 volte
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

nemo93 ha scritto:Questo perché ho 5 servizi che vanno rinnovati entro 90gg dalla scadenza del contratto (il contratto dura circa 3 anni, quindi ho bisogno di avvisare la determinata azienda a 90gg dal termine di rinnovare il contratto).
Temevo ci fossero date di scadenza differenziate.

Mi sembra tu sia sulla strada giusta :super: .
Ma, per favore:
  1. Cambia l'indice sul nome file quando posti un nuovo esempio
  2. Posta esempi di database popolati con qualche dato
  3. Non cambiare i nomi campo e (nel tuo interesse) usa nomi campo brevi e di una sola parola o più parole unite dal segno "_". Ti eviterà tanti fastidi nel lavoro.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
nemo93
Messaggi: 45
Iscritto il: mercoledì 31 gennaio 2018, 13:25

Re: Database inserimento clienti

Messaggio da nemo93 »

Buongiorno,
Riscontro un problema con le query... Malgrado siano impostate (credo correttamente) quando ci vado a cliccare, con i dati inseriti (dove sono stati selezionati vari servizi presenti nelle query) non visualizzo alcun contatto...
Altra domanda, quando vado ad aprire la maschera, mi fa vedere tutti i dati precedentemente inseriti, come posso impostarla affinché compaia la pagina pulita pronta per mettere nuovi dati?
Allegati
SOA&Impresa 2.odb
(108.79 KiB) Scaricato 128 volte
Debian 9: LibreOffice 6
MacOS X Hight Sierra: LibreOffice 6
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Database inserimento clienti

Messaggio da charlie »

nemo93 ha scritto:Riscontro un problema con le query... Malgrado siano impostate (credo correttamente) quando ci vado a cliccare, con i dati inseriti (dove sono stati selezionati vari servizi presenti nelle query) non visualizzo alcun contatto...
Perché con le date impostate nessuna scadenza è inferiore a 60 o 90 o 180 gg.
nemo93 ha scritto:Altra domanda, quando vado ad aprire la maschera, mi fa vedere tutti i dati precedentemente inseriti, come posso impostarla affinché mi compaia la pagina pulita pronta per mettere nuovi dati?
Fai clic su nuovo record nella barra di navigazione (in basso, sulla cornice della finestra), o aggiungi una barra di navigazione al formulario e fai clic come già detto, oppure aggiungi un pulsante e lo imposti per aprire un nuovo record.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi