Aiuto somma di campi

di il
4 risposte

Aiuto somma di campi

Buona sera a tutti , ho un problema e spero che potete aiutarmi .
Allora ho creato una tabella con 3 voci : nome , tipoprest, ValPres..
Poi ho creato una queri con gli stessi campi di prima ma con in piu un campo con questa espressione:

RISULTATO: IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 10";[Prestazioni]![Valore]*20/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 11";[Prestazioni]![Valore]*20,2/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 12";[Prestazioni]![Valore]*20,4/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 13";[Prestazioni]![Valore]*20,6/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 14";[Prestazioni]![Valore]*20,8/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 15";[Prestazioni]![Valore]*21/100;IIf([Prestazioni]![Tipoprest]="Ergo Risparmio 16";[Prestazioni]![Valore]*21,2/100)))))))

Ovvero in base al tipo di prestazione prende il valore inserito in valpres e calcola una percentuale , pero visto che il comando sopra scritto è molto lungo perchè ho molte voci da poter inserire in tipoprest con relative percentuali , ho dovuto creare 3 cambi diversi che hanno la stringa con le voci diverse . Ora il programma che fa? analizza le voci tipo prest e Valprest e calcola il nuovo risultato e lo va a crivere nel campo della quesry dove c'è la parola corrispondente di tipoprest ovvero o nel campo risultato o risultato1 o risultato2 quindi nella riga lascia vuoto due campi su 3 e in uno metti il valore calcolato. Ora mi servirebbe un ulteriore campo dove somma i valori dei 3 campi Risultato cosi da poter far apparire in un successivo report direttamente il valore sotto una sola voce invece di dover far visualizzare i 3 campi Risultati . Il mio problema è che ho provato sia a creare un ulteriore campo nella query mettendo come espressione =[Risultato]+[Risultato1]+[Risultato3] ma non mi va a mettere nessun dato nella query , ho provato a mettere la stessa espresione (richiamando la query da dove prendere i dati ) in un campo nel report ma lo stesso non mi da nulla . Come posso fare? aiuti ? suggeriemnti?
Granzie in anticipo

4 Risposte

  • Re: Aiuto somma di campi

    Io trovo l'espressione troppo elaborata per essere scritta tutta in un campo (tra l'altro non l'ho capita affatto). Ti consiglio di creare tante colonne che restituiscono tutti i "piccoli risultati" e poi ricrei varie espressioni che si rifanno ai risultati parziali volta per volta.
  • Re: Aiuto somma di campi

    Ciao Fleetingcloud,
    con così' tante iif nidificate credo sia difficile il debug e la comprensione del codice anche per te solo dopo qualche giorno da averlo scritto.
    forse ti converrebbe una UDF da inserire in un modulo standard del tipo
    
    Public Function retVal(ByVal strValue As String) As Double
        Dim dblRet As Double
            Select Case strValue
                Case "Ergo Risparmio 10"
                    dblRet = 20
                Case "Ergo Risparmio 11"
                    dblRet = 20.2
                Case "Ergo Risparmio 12"
                    dblRet = 20.4
                Case "Ergo Risparmio 13"
                    dblRet = 20.6
                Case "Ergo Risparmio 14"
                    dblRet = 20.8
                Case "Ergo Risparmio 15"
                    dblRet = 21
                Case Else
                    dblRet = 21.2
            End Select
         retVal = dblRet / 100
    End Function
    
    
    e risolvere la query così :
    
    SELECT p.nome, 
               p.tipoprest,
               p.ValPres, retVal([tipoprest])*[valpres] AS risultato
    FROM Prestazioni as P;
    
    sempre se ho capito l'obbiettivo....
    un saluto.
  • Re: Aiuto somma di campi

    Tutti quei IIF funzionano quando inserisco i dati attraverso la maschera di inserimento il valore finale calcolato lo inserisce nella colonna dove c'è l'IIf col nome corrispondente , unico problema è che essendo quel comando troppo lungo ( ma anche piu lungo visto che quello è solo di una sola colonna) ho dovuto creare 3 colonne e mi inserisce il valore nella colonna corrispondente ovvero per esempio se ho nella colonna 1 le parole ciao , bene e nella colonna 2 saluti , pippo , se inserisco nella maschera di inserimento la parola ciao e il valore numerico 10 mi calcola la % relativa su 10 e la inserisce nella colonna1 della query mentre se metto scrivo la parola saluti il valore % lo mette nella colonna2 della query. ora mi serve una colonna che mi riporta la somma della colanna1+colonna2 ma non mi funziona la sintassi della somma. oppure trovare il modo di mettere tutto il comando in una sola colonna cosi da risolvere il prpblema
  • Re: Aiuto somma di campi

    E se creo una macro con
    Function CheckIt
    CheckIt = ( qui metto tutto il codice che ho fatto con IIF )
    End Function

    funziona? e la posso mettere in un campo della query? se si come?

    Anche perchè Goku scusami ma non ho capito la tua risposta non l'ho capita visto che hai separato la condizione con i numeri che in realta sarebbero il tipo di percentuale da calcolare sul valore che vado a inserire della prestazione relativo al tipo di prestazione
Devi accedere o registrarti per scrivere nel forum
4 risposte