Campo somma in maschera filtata

di
Anonimizzato14819
il
5 risposte

Campo somma in maschera filtata

Sono un anziano autodidatta che da qualche mese mi sto cimentando con ms access. Capisco pochissimo e sono un ignorantone alle prime armi. Mi sono imbattuto in due problemi che non riesco a risolvere vi chiedo di aiutarmi.
Il db che desidero realizzare lo voglio regalare ai colleghi che ci lavorano. Io sono in pensione da qualche tempo.
a. Tabella programma annuale esigenza “A” formata dai seguenti campi: anno; esigenza An; importo An;
b. Tabella programma annuale esigenza “B” formata dai seguenti campi: anno; esigenza Bn; importo Bn;
c. Tabella programma annuale esigenza “C” formata dai seguenti campi: anno; esigenza Cn; importo Cn;
d. Tabella programma annuale esigenza “D” formata dai seguenti campi: anno; esigenza Dn; importo Dn;
ogni tabella contiene più anni(anno1, anno2, anno…n) e più esigenze nello stesso anno (A1, A2, A…n).
scelgo un intervallo di anni: dal… al…. (es 3 anni) (maschera intervallo, da query la relazione ID univoche sono gli anni) e si apre una maschera che contiene tante righe quanti sono gli anni (es. 3 righe). Ogni anno (riga) contiene, per ogni campo, la somma degli importi delle singole esigenze dello stesso anno es. anno1: tot.A, tot. B, tot. C… ecc; anno2: ; tot.A, tot. B, tot. C… ecc. dove tot.A= A1+A2+…An; tot.B= B1+B2+…Bn ecc. …che sono sono gli importi delle esigenze A, B, ….
i problemi sono:
1) fare il totale di tutte le somme delle esigenze: tot.A+ tot. B+tot. C… per ogni singolo anno presente nella maschera intervallo. Il campo totale dovrebbe apparire nella stessa maschera inervallo. Il fatto è che quando inserisco il campo somma dei campi dello stesso anno, mi da il risultato giusto del primo anno (prima riga) ma è lo stesso per tutti gli anni ( le altre righe);
2) cliccando su un singolo campo vorrei aprire la maschera della Tabella programma annuale (per es esigenza A) relativa all’anno della riga dove ho cliccato. Serve per apportare modifiche/aggiungere al tipo di esigenza nell’anno scelto
Potete aiutarmi? grazie

5 Risposte

  • Re: Campo somma in maschera filtata

    Ho risolto il problema n. 1. Per correttezza ho visto che devo condividere la soluzione e lo faccio volentieri sperando di riuscire a farmi capire. L'errore che comettevo era di inserire nella query che sommava le singole esigenze (formula Somma) anche il risultato delle somme cioè l'equazione Risultato:([Tot.A]+[Tot.B]+[...]);
    NON FUNZIONAVA. Ho fatto delle singole query di somma delle singole tabelle esigenze (anno: crescente e esigenza: somma) e poi la query che conteneva le somme delle esigenze (tot.A...) e l'equazione Risultato:([Tot.A]+[Tot.B]+[...]) nella prima riga. La relazione fra le esigenze è rimasta l'anno ed ho inserito nella queri Risultato solo un campo "anno" di una generica somma esigenza. Non saprei spiegarlo meglio ma se a qualcuno interessa mando l'immagine delle query che spiega meglio delle parole.
  • Re: Campo somma in maschera filtata

    Paolo Poli ha scritto:


    a.Tabella programma annuale esigenza “A” formata dai seguenti campi: anno; esigenza An; importo An;
    b.Tabella programma annuale esigenza “B” formata dai seguenti campi: anno; esigenza Bn; importo Bn;
    c.Tabella programma annuale esigenza “C” formata dai seguenti campi: anno; esigenza Cn; importo Cn;
    d.Tabella programma annuale esigenza “D” formata dai seguenti campi: anno; esigenza Dn; importo Dn;
    C'è un grave problema di normalizzazione tabelle. Non devi avere più tabelle che dicono la stessa cosa, cioè con gli stessi campi.
  • Re: Campo somma in maschera filtata

    Scusami Osvaldo,
    non si tratta di campi uguali ancorchè le esigenze si concretizzano in spese. La necessità di separarle è dovuta al fatto che ogni esigenza ha uno sviluppo indipendente perchè diverse. ad esempio l'esigenza A sono lavori edili che hanno uno sviluppo in tre fasi (progetto, affidamento e esecuzione) l'esigenza B potrebbe essere l'acquisto di carta che ha solo l'ordine mentre l'esigenza C potrebbe riguardare gli stpendi che si sviluppano in ore di lavoro.
    grazie del tuo interesse.
  • Re: Campo somma in maschera filtata

    Stiamo andando entrambi fuori tema dal thread. Comunque sia è sempre possibile accorpare tutto in un'unica tabella con l'aggiunta di un campo che specifica la differenza sostanziale di quello che sta scritto nei precedenti campi.
    Non ti preoccupare di continuare questo punto della discussione qui. Se vuoi/vogliamo approfondire occorre aprire un nuovo thread.
  • Re: Campo somma in maschera filtata

    ...penso che sto complicando il problema. Non vorrei tarsgredire le regole del Forum e spero di essere all'altezza del compito essendo entrato in un mondo a me totalmente estraneo. Desidero farlo con molta discrezione, umiltà d'animo e sopratutto con rispetto. Di consguenza se sbaglio....
    Vediamo un po': ho la mia bella maschera con tre righe di campi di altrettanti anni (2014,2015,2016) ogni campo è la somma degli importi delle esigenze delle rispettive maschere (penso che non cambia nulla se tutte le esigenze sono su una tabella o su più tabelle distinte).A questo punto clicco nel campo "SommaDiImporto Stimato" (anno 2014) e dovrebbe aprire la maschera dove sono stati inseriti i lavori programmati nel 2014.
    la Routine evento che ho cercato di sviluppare è la seguente:
    Private Sub SommaDiImporto_Stimato_DblClick()
    On Error GoTo Err_SommaDiImporto_Stimato_DblClick
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "[01 programm Annuale Lavori Query]"
    stLinkCriteria = "[Anno] =" & Me![Anno]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Exit_SommaDiImporto_Stimato_DblClick:
    Err_SommaDiImporto_Stimato_DblClick:
    MsgBox Err.Description
    Resume Exit_SommaDiImporto_Stimato_DblClick
    End Sub


    errore: "la dichiarazine della routine non corrisponde alla descrizione dell'evento o della routine dello stesso nome".
    dove devo correggere?
    in un altro db che ho fatto funziona perfettamente.
Devi accedere o registrarti per scrivere nel forum
5 risposte