Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[Access] Consiglio/Suggerimento su problema database per bilancio fami...
martedì 12 agosto 2008 - 09.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 12 ago 2008 - 09:33
Ciao a tutti, ho il seguente problema, mi son messo in testa di fare
un piccolo programmino in VB express per gestirmi un po' il budget
famigliare, ho pensato quindi di avvalermi di un database e lavorare
su quello. Avevo pensato quindi di creare 3 tabelle.
La prima tabella la chiamo TipiPagamento, formata da 3 campi,
IDpagamento, Descrizione, totale
In questa tabella ci ho messo i seguenti dati:
IDpagamento, Descrizione, totale
1,NESSUNO,0
2,BANCA,XXXXX
3,POSTEPAY,YYYYY
4,CONTANTI,ZZZZZ
la seconda tabella si chiama Causali e contiene 4 campi, IDcausali,
Descrizione, IDdatogliere, IDdamettere ed è composta dai seguenti dati
di esempio.
IDcausali, Descrizione, IDdatogliere, IDdamettere
1,NESSUNA,1,1
2,AFFITTO,2,1
3,BOLLETTE,2,1
4,PRELIEVO BANCOMAT,2,4
La terza e uttima tabella la ho ciamata Movimenti ed è formata da 5
campi:
IDmovimento, IDcausali,Descrizione, soldi, data
1,2,Pagato affitto,xxxx,080808
2,4,Prelevato contanti,yyyy,100808
In sostanza i valori della tabella Causali nei campi IDdatogliere,
IDdamettere identificano i soldi che devono essere sottratti o
aggiunti ai totali nella tabella stessa.
Ho un problema però che non riesco a risolvere ovviamente per le mie
scarse capacità, in sostanza avrei che tra la tabella Causali e la
tabella TipiPagamento intercorrono 2 relazioni, ossia IDdatogliere e
IDdamettere sono collegati all' IDpagamento. E' giusto questo tipo di
relazione ??? E come posso creare una query che mi permetta ad esempio
a video di visualizzare la tabella Causali con gli IDdamettere e
IDdatogliere sostituiti con le rispettive descrizioni ???
Grazie a tutti per la pazienza nella lettura.
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mar 12 ago 2008 - 14:52
Mi sembra che hai iniziato con un architettura non ottimizzata. Pensa come un ragioniere (anche se è solo per la famiglia ...). L'anagrafica dei mezzi di pagamento va bene. Aggiungi una tabella dei movimenti nella quale c'è il mastrino dei conti: data, da, a, dare, avere, idmovimento, tipologia.
da = codice del cliente fornitore (potresti essere tu come l'idraulico) che paga
a = codice del cliente fornitore (potresti essere tu come l'idraulico) che incassa
data = data dell'operazione
dare = valore dell'importo che esce
avere = valore dell'importo che entra
idmovimento = identificativo del movimento (potrebbe essere un elenco di scritture contabili come "da a molti", "molti a a" o "molti a molti")
tipologia = tipo della spesa/movimento
Creati un anagrafica Clienti/Fornitori
Creati una tabella x le tipologia di spesa
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 12 ago 2008 - 16:35
Ho iniziato con il piede sbagliato ma mi hai dato un grande aiuto, ho capito la tua logica e non ho pensato come un ragioniere :)
Grazie mille per lo spunto così ho un po' di materiale per lavorarci su, grazie tantissime.
Ho una domanda però, io faccio la tabella movimenti come mi hai consigliato tu, poi faccio la tabella clienti/fornitori, gli id dei clienti fornitori andranno a finire nei campi da, a della tabella mvimenti, quindi è una doppia relazione dalla tabella movimenti alla tabella clienti, è corretto o ho capito male ? Perchè in caso vorrei capire come eseguire una query che mi dia come risultato, la data, il nome corrispondente all'ID in DA e il nome corrispondente al ID A. Grazie mille
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 12 ago 2008 - 19:42
621x384
23Kb
Allora ho creato questo database seguendo le tue indicazioni, credo che sia accettabile e molto meglio di quello che avevo ipotizzato io all'inizio, cosa ne pensi ???
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mar 12 ago 2008 - 20:34
Devi pensare che un Cliente può anche essere un Fornitore e viceversa per cui la tabella è la stessa. Per quanto riguarda la relazione non devi preoccuparti di aggiungere una tabella già presente nel diagramma per ottenere il risultato voluto in una query.
I famosi "mastrini" di uso ragioneristico vengono ottenuti tramite query (e quindi non esistono come tabella a se stante).
Tu hai inserito una tabella conto ma in realtà questa non dovrebbe esistere, o almeno non in quel contesto. Se vuoi inserisci gli estremi del conto all'interno del movimento di incasso. Incassi e uscite le puoi inserire all'interno di apposita tabella la quale avrà i seguenti campi ID_Movimento (lo stesso della tabella movimenti), ID_Conto (il quale fa riferimento ad un anagrafica conti dove specifichi i tuoi conti bancari ed il conto cassa), natura dell'operazione (Spesa o Incasso).
Con queste tabelle sei in grado di regisrare qualsiasi operazione.
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 12 ago 2008 - 20:59
Grazie per la pazienza ma non riesco davvero a capire come dici tu l'ottenimento dell'obbiettivo con una query.
Se come dici tu clienti/fornitori lo utilizzo per identificare anche me stesso e le operazioni che posso fare io allora facciamo un esempio.
In data odierna faccio questo.
Prelevo dalla banca con bancomat dei soldi, l'azione è quella di prelievo dal mio conto in banca e aggiunta dei soldi nella cassa comune.
poi faccio la spesa, l'azione è quella di prelievo soldi dalla mia cassa comune e i soldi vanno a finire al fornitore supermarket.
il tutto va a finire nella tabella movimenti.
Come faccio a impostare la query per visualizzarmi queste due operazioni ? Grazie ancora
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mer 13 ago 2008 - 09:13
744_db1.zip
>Grazie per la pazienza ma non riesco davvero a capire come dici
>tu l'ottenimento dell'obbiettivo con una query.
>Se come dici tu clienti/fornitori lo utilizzo per identificare
>anche me stesso e le operazioni che posso fare io allora facciamo
>un esempio.
>In data odierna faccio questo.
>Prelevo dalla banca con bancomat dei soldi, l'azione è quella
>di prelievo dal mio conto in banca e aggiunta dei soldi nella
>cassa comune.
>poi faccio la spesa, l'azione è quella di prelievo soldi dalla
>mia cassa comune e i soldi vanno a finire al fornitore supermarket.
>il tutto va a finire nella tabella movimenti.
>Come faccio a impostare la query per visualizzarmi queste due
>operazioni ? Grazie ancora
Il primo movimento è un uscita dalla tua banca (DARE) e un entrata nella cassa comune (AVERE)
Il secondo movimento è un uscita dalla assa comune (DARE) e un entrata in Supermarket PincoPalla (AVERE)
Il secondo movimento potrebbe essere seguito (se vuoi scendere nel dettaglio) in un movimento DA a Diversi come segue:
Da SuperMarket PincoPalla (DARE) a Frutta
a Verdura
a Bevande
a ...
Per visualizzare i movimente in una query basta una Select simile:
SELECT [TO Movimenti].MovimentoID, [TO Movimenti].Data, [TA ClientiFornitori].Descrizione AS DA, [TA ClientiFornitori_1].Descrizione AS A, [TO Movimenti].Importo
FROM [TA ClientiFornitori] AS [TA ClientiFornitori_1] INNER JOIN ([TA ClientiFornitori] INNER JOIN [TO Movimenti] ON [TA ClientiFornitori].ClienteFornitoreID = [TO Movimenti].Da) ON [TA ClientiFornitori_1].ClienteFornitoreID = [TO Movimenti].A
Per tua semplicità ti ho allegato un file Access 2003 che ti esemplifica il tutto.
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 13 ago 2008 - 11:16
Prima di tutti lascia che ti ringrazi tantissimo perchè hai una grande pazienza nel rispondermi, e nella suddetta sei stato chiarissimo e ti ringrazio anche per il database, purtroppo non riesco ad aprirlo e visualizzarlo correttamente (non capisco perchè, ho access 2007) comunque mi sono studiato la select con INNER JOIN che mi hai passato e ci ho capito qualcosina, l'unica cosa che mi sfugge è questo
FROM [TA ClientiFornitori] AS [TA ClientiFornitori_1]
In sostanza fai la query sulle stessa tabella ma la rinomini vero ? Io non sapevo nemmeno che si potesse fare, appunto sono alle prime armi.
Nelle tabelle che mi hai passato, il campo SOLDITOTALI che identifica il mio patrimonio attuale in banca come in posta come in cassacomune come qualunque altra cosa lo posso mettere nella tabella ClientiFornitori a questo punto giusto ?
Ad esempio potrei mettere sotto ClientiFornitori PINCO BANCA e poi metto i soldi totali, poi PINCO CASSA e ci metto i soldi totali, quindi ogni movimento mi scatena una azione nel patrimonio è corretto ?
Grazie ancora tantissime
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mer 13 ago 2008 - 13:09
>Prima di tutti lascia che ti ringrazi tantissimo perchè hai una
>grande pazienza nel rispondermi, e nella suddetta sei stato chiarissimo
>e ti ringrazio anche per il database, purtroppo non riesco ad
>aprirlo e visualizzarlo correttamente (non capisco perchè, ho
>access 2007) comunque mi sono studiato la select con INNER JOIN
>che mi hai passato e ci ho capito qualcosina, l'unica cosa che
>mi sfugge è questo
>FROM [TA ClientiFornitori] AS [TA ClientiFornitori_1]
>In sostanza fai la query sulle stessa tabella ma la rinomini
>vero ? Io non sapevo nemmeno che si potesse fare, appunto sono
>alle prime armi.
>Nelle tabelle che mi hai passato, il campo SOLDITOTALI che identifica
>il mio patrimonio attuale in banca come in posta come in cassacomune
>come qualunque altra cosa lo posso mettere nella tabella ClientiFornitori
>a questo punto giusto ?
>Ad esempio potrei mettere sotto ClientiFornitori PINCO BANCA
>e poi metto i soldi totali, poi PINCO CASSA e ci metto i soldi
>totali, quindi ogni movimento mi scatena una azione nel patrimonio
>è corretto ?
>Grazie ancora tantissime
Allora, SOLDITOTALI presumo sia la somma dei saldi dei movimenti in CASSACOMUNE, BANCA e CONTOPOSTA. Tre voci queste che compaiono in ClientiFornitori.
Per avere il saldo di ogni conto basta che tu Sommi le cifre in AVERE relative ai movimenti su detti conti e gl sottrai la somma degli importi presenti in DARE dei movimenti.
Visto che non riesci ad aprire il db che ti avevo postato provo ad inviarti due immagini, una che ti mostra il risultato della Query sui movimenti e l'altra con l'immagine del diagramma della query stessa. Il Query Analyzer stesso rinomina la tabella quando la inserisci più di una volta (ma la tabella è sempre la stessa !!)
Per quanto riguarda le tue ultime deduzioni ... si è corretto. Si usano degli identificativi di comodo che alcuni li chiamano "Scritture di inizio esercizio" nei quali si imputano le uscite atte ad alimentare i saldi iniziali dei "mastrini" dei vari conti Clienti/Fornitori (d'altronde in qualche modo devi raccontare al sistema che parti da x Euro in Banca e ti ritrovi tot soldi in tasca così come x euro in Posta ...)
818x468
59Kb
624x179
29Kb
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 13 ago 2008 - 13:34
La tua chiarezza è stata fantastica e la tua disponibilità anche, la tua immagine mi ha aiutato a capire ancora meglio il tutto, ti ringrazio ancora tantissimo per la tua gentilezza, un augurio di buona giornata a te.
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mer 13 ago 2008 - 13:53
Grazie a te! Fa sempre piacere essere d'aiuto.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !