Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

Formula per semplice DB conto corrente

  1. #1
    cicciobas non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Innanzi tutto un saluto a tutta la community. Sono nuovo di questo forum ed anche novizio nell'uso di Access motivo per cui richiedo il vostro aiuto per un piccolo intoppo che ho incontrato durante la progettazione di un piccolo database x uso personale. Ho provato a leggere i topic già pubblicati ma non ho trovato la risposta che cercavo, o forse sono proprio ottuso e l'ho letta senza capire che era quella giusta... cmq...

    Mi sto creando un piccolo database in Access dovo posso, una volta inseriti giornalmente i dovuti dati, tenere sott'okkio il mio C\C. Ho realizzato una tabella con vari campi tra cui [Data] [Avere] [Dare] e [Saldo]. Dopo di ché ho realizzato una maschera per rendere + agevole la consultazione giornaliera del "Saldo" e l'inserimento, sempre giornaliero, dei vari "Dare" e "Avere". Per far si che il valore del campo [Saldo] si aggiorni automaticamente ho inserito in esso una formula semplice e cioé

    =Somma(nz([Avere])-nz([Dare]))

    e fin quì tutto ok

    quando però vado a compilare un altro record (x esempio il giorno successivo inserendo un Dare piuttosto di un Avere), succede che la formula aggiorna il campo [Saldo] di tutti i record precedenti. Così facendo non posso conoscere il Saldo di una specifica data precedente.
    Quello che vorrei sapere è se esiste una formula che mi aggiorni solamente il campo [Saldo] del record su cui sto operando lasciando invariato quello dei record precedenti in modo da avere sempre a disposizione il Saldo per ogni data passata.
    Mi spiego diversamente facendo un esempio con Excel:

    A1[Dare] | B1[Avere] | C1[Saldo] Formula inserita in C1 =Somma(B1-A1)
    A2[Dare] | B2[Avere] | C2[Saldo] Formula inserita in C2 =Somma(C1+B2-A2)
    e così via...

    In questo modo Excel, nel campo [Saldo] di ogni riga (ossia di ogni data), lascia invariato il valore dell'operazione rendendolo disponibile alla consultazione e ad una nuova operazione nella riga successiva.

    Spero di essermi spiegato... come ho detto sono un novizio e non intendo offendere la sensibilità degli esperi di questo forum scrivando termini inconsulti.

    Ringrazio anticipatamente

  2. #2
    L'avatar di Gregorio
    Gregorio non è in linea Scolaretto
    Post
    493
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da cicciobas Visualizza il messaggio
    Innanzi tutto un saluto a tutta la community. Sono nuovo di questo forum ed anche novizio nell'uso di Access motivo per cui richiedo il vostro aiuto per un piccolo intoppo che ho incontrato durante la progettazione di un piccolo database x uso personale. Ho provato a leggere i topic già pubblicati ma non ho trovato la risposta che cercavo, o forse sono proprio ottuso e l'ho letta senza capire che era quella giusta... cmq...

    Mi sto creando un piccolo database in Access dovo posso, una volta inseriti giornalmente i dovuti dati, tenere sott'okkio il mio C\C. Ho realizzato una tabella con vari campi tra cui [Data] [Avere] [Dare] e [Saldo]. Dopo di ché ho realizzato una maschera per rendere + agevole la consultazione giornaliera del "Saldo" e l'inserimento, sempre giornaliero, dei vari "Dare" e "Avere". Per far si che il valore del campo [Saldo] si aggiorni automaticamente ho inserito in esso una formula semplice e cioé

    =Somma(nz([Avere])-nz([Dare]))

    e fin quì tutto ok

    quando però vado a compilare un altro record (x esempio il giorno successivo inserendo un Dare piuttosto di un Avere), succede che la formula aggiorna il campo [Saldo] di tutti i record precedenti. Così facendo non posso conoscere il Saldo di una specifica data precedente.
    Quello che vorrei sapere è se esiste una formula che mi aggiorni solamente il campo [Saldo] del record su cui sto operando lasciando invariato quello dei record precedenti in modo da avere sempre a disposizione il Saldo per ogni data passata.
    Mi spiego diversamente facendo un esempio con Excel:

    A1[Dare] | B1[Avere] | C1[Saldo] Formula inserita in C1 =Somma(B1-A1)
    A2[Dare] | B2[Avere] | C2[Saldo] Formula inserita in C2 =Somma(C1+B2-A2)
    e così via...

    In questo modo Excel, nel campo [Saldo] di ogni riga (ossia di ogni data), lascia invariato il valore dell'operazione rendendolo disponibile alla consultazione e ad una nuova operazione nella riga successiva.

    Spero di essermi spiegato... come ho detto sono un novizio e non intendo offendere la sensibilità degli esperi di questo forum scrivando termini inconsulti.

    Ringrazio anticipatamente
    Per me bisognerebbe vedere la maschera inserimenti.
    Ciao
    Ultima modifica di Gregorio; 05-09-2008 08:41 

  3. #3
    cicciobas non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Allora... vediamo di spiegarmi meglio:

    la maschera fa riferimento ad una tabella in cui tra i vari campi figurano i seguenti tre

    "Dare" (in cui si inseriscono tramite l'apposita maschera le cifre spese/uscite dal c/c)
    "Avere" (in cui si inseriscono tramite l'apposita maschera le cifre acquisite/entrate sul c/c)
    "Saldo" (in cui si Access, una volta fatta l'operazione di sottrazione del Dare e addizione del Avere, restituisce automaticamente il risultato)

    Per far modo che ciò avvenga, ho inserito nel campo "Saldo" della maschera la seguente formula:

    =Somma(nz([Avere])-nz([Dare]))

    e la cosa funziona. Infatti, una volta inserito un valore di 100 nel campo Avere, il campo Saldo viene immediatamente aggiornato da Access che, una volta sottratto il valore inserito nel campo Dare (ossia 0) riporta come risultato 100.
    Ora passiamo al record successivo ed inseriamo un valore 50 nel campo Avere; subito Access esegue l'operazione e, costatato che il valore del campo Dare è 0 anche in questo record, riporta il valore complessivo ossia la somma del campo Saldo del record precedente con il risultato dell'operazione eseguita nel record attuale ossia 150. E quì casca l'asino... invece di aggiornare solamente il campo Saldo del secondo record, Access aggiorna il valore di tutti i campi Saldo di tutti i record precedenti.

    Per facilitare la cosa posto una immagine della maschera con alcuni record di prova inseriti

    http://www.satiro.biz/maschera.jpg
    Ultima modifica di cicciobas; 06-09-2008 12:51 

  4. #4
    L'avatar di Gregorio
    Gregorio non è in linea Scolaretto
    Post
    493
    Like Inviati  
    0
    Like Ricevuti  
    0
    Deve esserci un errore nelle relazioni.
    Se svuoti il db e lo posti in http://myfreefilehosting.com/ te lo sistemo.
    Così purtroppo possiamo fare centomila ipotesi.
    Ciao

  5. #5
    cicciobas non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    ciao, il database lo puoi scaricare a questo indirizzo:

    Database21.accdb - database21 - Dedicated Web Hosting Service

    la maschera incriminata è "Banca" collegata alla tabella con lo stesso nome

  6. #6
    L'avatar di Gregorio
    Gregorio non è in linea Scolaretto
    Post
    493
    Like Inviati  
    0
    Like Ricevuti  
    0
    non ho access 2007. fai una copia 2003 .
    Ciao

  7. #7
    cicciobas non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0

  8. #8
    L'avatar di seamission
    seamission non è in linea Scribacchino
    Post
    1,347
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da cicciobas Visualizza il messaggio
    Usando delle maschere continue access interpreta il controllo saldo e non il controllo saldo riga per riga, di fatto esiste un solo controllo che si chiama saldo.
    Vedi se ti può andare con questa variazione.
    Modifica così il codice che trovi su dopo aggiornamento di dare /avere
    Me![Saldo] = Me![Dare] - Me![Avere]
    Recalc
    If Me![Testo36] > 0 Then
    Me![Testo36].ForeColor = vbGreen
    Else
    Me![Testo36].ForeColor = vbRed
    End If
    File allegati File allegati
    Ultima modifica di seamission; 07-09-2008 21:54 
    ℹ️ Leggi di più su seamission ...

  9. #9
    L'avatar di Gregorio
    Gregorio non è in linea Scolaretto
    Post
    493
    Like Inviati  
    0
    Like Ricevuti  
    0
    Il problema è come pensavo sulle relazioni. Ma non perchè sono errate ma perchè non esistono.
    Hai fatto 5 tabelle tutte con la chiave l'ID uguale a tutti. Oltre l'identificativo ID devi mettere avere anche un nome (identificativo della tabella). Es: La tabella Clienti avrà l'id "IDCLIENTI"; La tabella BANCA avrà l'id "IDBANCA" e così via. Questo lavoro ti permettera di relazionare anche la pagamenti, e così via con le altre maschere. la tabella Banca non è relazionata con nessuna tabella. Giusto?.
    Io ho inserito dei valori sia in dare che avere il problema non lo da.
    Bisogna reingegnerizzare il db dopo un'attenta analisi delle proprie esigenze.
    Ciao e fammi sapere.

  10. #10
    cicciobas non è in linea Novello
    Post
    5
    Like Inviati  
    0
    Like Ricevuti  
    0
    Beh vi ringrazio entrambe, ma la soluzione di seamission non mi risolve il problema nel modo che volevo e la spegazione di gregorio non l'ho capita...

    Grazie comunque per lo sbattimento che vi siete fatto.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Saldo iniziale su conto corrente
    Da freddy60 nel forum Visual Basic .Net
    Risposte: 18
    Ultimo Post: 15-12-2020, 09:05
  2. Tenativo di rubare soldi da un conto corrente
    Da sistemista nel forum Networking e sicurezza
    Risposte: 5
    Ultimo Post: 30-07-2020, 11:53
  3. query saldo conto corrente bancario
    Da SIMONE90 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 08-06-2010, 23:12
  4. Gestione conto corrente su Access
    Da Lcassiago nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 08-06-2009, 17:17
  5. Access: domandina semplice semplice...
    Da JPetrucci nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 02-09-2004, 15:02