[MS Access] CAMPO CALCOLATO CON FUNZIONE DSUM

Discussione in 'MS Access' iniziata da RATTS71, 16 Marzo 2018.

  1. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti sto cercando invano di risolvere il seguente problema:

    Ho due maschere VEDIAVVISI e RATEIZZI. la maschera VEDIAVVISI visualizza tutti i dati di un avviso incluso l'importo da pagare. In questa maschera c'e' un pulsante che apre la maschera RATEIZZI che si apre in fioglio dati visualizzando le varie righe corrispondenti al vario numero di rate che si devono pagare e che si riferiscono tutte allo stesso IDavvisi. In pratica per ogni avviso possono esserci x numero di rate. Le due maschere si appoggiano su una query di maschera.
    Quello che vorrei fare e' inserire nella mascera RATEIZZI un campo calcolato che faccia la somma di tutte le rate pagate riferite a quel singolo avviso.
     
  2. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Non c'è bisogno di aprire un'altra maschera per vedere le varie rate relative all'avviso visualizzato nella maschera VEDIAVVISI basta aggiungere in questa una sottomaschera, che appunto puoi chiamare smRATEIZZI, dove la proprietà Visualizzazione predefinita è impostata a Maschere continue e che ha le proprietà Collega campi secondari e Collega campi master entrambe con il valore IDavvisi e nella sezione Piè di pagina maschera inserisci un campo testo dove nella proprietà Origine controllo scivi la formula =Somma(NomeCampoDaSommare).
    Se alleghi il file forse è ancora più facile aiutarti.
     
    Ultima modifica: 16 Marzo 2018
  3. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao ho allegato le schermate. Come puoi vedere nella maschera smsrateizzi (inizialmente era una sotttomaschera)ci sono vari record ma che appartengono tutti allo stesso IDnumeroavviso e cioe' sono tutte rate relative a quell'avviso.
    La mia necessita' e' proprio quella di fare eseguire somme parziali relative ad un certo tipo di record, nel mio caso relative ad un determinato numero ID di IDnumeroavviso per questo parlavo della funzione Dsum
     

    Files Allegati:

  4. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Il lavoro, secondo me, dovrebbere essere sviluppato in questo modo:

    1. Avere un maschera di riepilogo Avvisi con :
      • nella sezione Intestazione maschera inserire tutti i controlli che permettono qualsiasi filtro sui dati
      • nella sezione Corpo inserire una sottomaschera, creata a parte dove sono visualizzati tutti gli Avvisi e che permetterà già nella sezione Pià di pagina maschera di visualizzareil riepilogo dei vari importi.
    2. Una maschera per la gestione dell'Avviso dove saranno presente tutti i controlli che lo caratterizzano e una sottomaschera dove visualizzare tutti i Rateizzi relativi all'Avviso visualizzato e che permetterà già nella sezione Pià di pagina maschera di visualizzare il riepilogo dei vari importi.
    3. Una maschera per la creazione dei Rateizzi
    4. Una maschera per la gestione del singolo Rateizzo
    ecco perchè se alleghi il file ti si può par vedere un'esempio.
     
  5. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao, ho deciso di lasciare la struttura cosi' com'e' per problemi di tempo e poi perche' vorrei risolvere il problema. Come ti dicevo non riesco proprio a fare funzionare quella formula Dsum. La formula Dsum la inserisco nel generatore di espressione nel controllo della maschera smsrateizzi. La funzione dovrebbe sommare gli importi pagati per un dato IDnumeroavvisi e cioe' la funzione mi deve visulaizzare la somma relativa al numero di avviso che io richiedo e non sommare altri campi. Quindi devo inserire un criterio dinamico. Purtroppo non riesco a farla funzionare. Allego la formula che ho scritto
     

    Files Allegati:

  6. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    La formula dovrebbe essere la seguente:
    =DSum("[importopagato]";"[rate]";"[IDnumeroavviso]=" & [Forms]![vediavvisi]![IDnumeroavviso])
     
  7. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    purtroppo non funziona, nel controllo associato mi restituisce un messaggio di errore
     
  8. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ecco perchè ci vuole il file su cui lavori, è per rendersi effettivamente conto di quello che hai fatto in quanto la formula è grammaticalmente corretta!
     
  9. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    che fila ti devo mandare ?
     
  10. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Quello su cui stai lavorando e dove esiste questo controllo la cui Origine controllo è data dalla funzione DSum.
     
  11. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    ok ti allego i file
     

    Files Allegati:

  12. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Non hai capito ci vuole il file di access e non il pdf.
     
  13. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    ho provato a caricarlo ma mi dice che e' troppo pesante il file
     
  14. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Comprimilo con un programma come winzip o winrar.
    Se anche questo non bastasse scarica il file su un sito di condivisione file e poi inseririsci nel messaggio l'indirizzo che ti verrà rilasciato dopo averlo condiviso.
     
  15. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
  16. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    La soluzione è la seguente:
    =DSum("[importopagato]";"[rate]";"[IDnumeroavviso]=" & [Maschere]![smsrateizzi]![IDnumeroavviso])
    in quanto il il valore dell'IDnumeroavviso, che permette il corretto funzionamento della funzione DSum, deve essere legato al record selezionato attualmente nella maschera smsrateizzi.
     
  17. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    perfetto adesso funziona !!!! Grazie

    Posso approfittare delle tue capacita' e del tuo tempo ancora una volta ? quando dallla maschera vedi avvisi clicco il pulsante vedi rateizzo va tutto bene. I record visulizzati corrispondono all'IDnumeroavviso desiderato. Ma se voglio aggiungere un nuovo record o inserirne uno nuovo non riesco ad assegnargli automaticamete all'apertura della maschera smsrateizzi l'IDnumeroavviso della maschera vediavvisi
     
  18. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Basta inserire il seguente codice :

    Private Sub Form_Load()
    Me.IDnumeroavviso = Form_vediavvisi.IDnumeroavviso
    End Sub

    nell'evento caricamento della maschera smsrateizzi.
    Come ti avevo detto precedentemente però ci sino molte carenze nel tuo database, le cose più importanti sono:
    • le tabelle non verificano mai la possibilità che vengano creati errori (es. la proprietà Indicizzato del campo codicefiscale è impostata a Sì (Duplicati ammessi) anzichè Sì (Duplicati non ammessi) che impedirebbe appunto la possibilità che qualcuno per errore lo possa duplicare, cosa gravissima)
    • la stessa problematica si verifica per il campo numeroavviso nella tabella avvisi
    • la stessa problematica si verifica nella tabella rate dove però per impedire doppioni dovrebbe essere creato un indice univoco sulla combinazione dei due campi IDnumeroavviso e numerorata
    • il campo IDanagrafica nella tabella rate è inutile in quanto esiste già nella tabella avvisi
    • non viene mai impostata la proprietà Richiesto dei campi per obbligare l'inserimento del relativo valore.
    • ecc...
     
  19. RATTS71

    RATTS71 Nuovo Utente

    Registrato:
    12 Marzo 2018
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ti ringrazio davvero tanto per l'aiuto e anche per i consigli. Effettivamente e' da solo 3 settimane che sto usando access e sono consapevole delle mie carenze che sto imparando "sul campo" anche perche' non ho trovato un manuale davvero utile, nel senso che quelli che ho letto sono spiegati tralasciando proprio i passaggi pratici iniziali.
     
  20. CarlettoFed

    CarlettoFed Utente Attivo

    Registrato:
    17 Luglio 2017
    Messaggi:
    76
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Non ci sono problemi, basta chiedere se saremo in grado risponderemo
     
Sto caricando...

Condividi questa Pagina