Query fra record per creare formula

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Query fra record per creare formula

    C'è un modo molto più semplice per gestire Formule, ma servirebbe capire o avere un Denominatore comune… ovvero ad esempio capire e sapere quanti sono i Parametri dinamici delle Formule…

    Ipotizzo solo a titolo di Esempio di avere sempre 3 Parametri da poter definire man mano.

    Ipotiziamo che nella tabella con le Formule, che chiamiamo [TFormule] (che ha Pk=Numerico e campo Stringa con la Formula) tu abbia una Formula scritta così:

    P1*P2/(P3*0.20) 'Questa è la Formula1
    P3+P2-(P1*3)	'Questa è la Formula2

    Ora nella query che generi dalla Tabella dati con un campo FK che lega alla Tabella Formule ricavi la Formula:

    SELECT tblDati.Campo1, tblDati.Campo2, tblDati.Campo3r, TFormule.Formula, ExecFormula([Formula],[Campo1],[Campo2],[Campo3]) AS RisultatoFormula
    FROM tblDati INNER JOIN TFormule ON tblDati.IdFormula = TFormule.IdFormula;

    Come vedi la Query ha una chiamata a Funzione Esterna…

    Function ExecFormula(pFormula As String, P1, P2, P3)
        Dim sFormula As String
        sFormula = Replace(pFormula, "P1", Chr(34) & P1 & Chr(34))
        sFormula = Replace(sFormula, "P2", Chr(34) & P2 & Chr(34))
        sFormula = Replace(sFormula, "P3", Chr(34) & P3 & Chr(34))
        ExecFormula = Eval(sFormula)
    End Function

    In questo modo passi la funzione in stringa, sostituisci i Parametri alle Variabili ed il Valutatore di Espressioni fa il calcolo. 

    Chiaramente se, il numero di aprametri cambia, andrai a valurare nella Funzione il prametro mancante…

    Function ExecFormula(pFormula As String, P1, P2, P3)
        Dim sFormula As String
        sFormula=pFormula
        If Instr(sFormula,"P1")>0 Then sFormula = Replace(sFormula, "P1", Chr(34) & P1 & Chr(34))
        If Instr(sFormula,"P2")>0 Then sFormula = Replace(sFormula, "P2", Chr(34) & P2 & Chr(34))
        If Instr(sFormula,"P3")>0 Then sFormula = Replace(sFormula, "P3", Chr(34) & P3 & Chr(34))
        ExecFormula = Eval(sFormula)
    End Function
  • Re: Query fra record per creare formula

    16/08/2023 - Pros78 ha scritto:


    ok, accetto le opinioni di tutti, ma volevo semplicemente la risposta alla mia domanda…

    Le risposte te le stiamo dando mano a mano che procediamo con la discussione.

    Il problema principale però è che qualsiasi risposta ti verrà data, implica il fatto che tu conosca a fondo access e che  tu sappia programmare molto bene in vba.

    Inoltre se ho ben capito, facendo un analogia, è come se tu vorresti calcolare:

    • l'area del cerchio
    • l'area del quadrato
    • l'area dei triangoli
    • l'area di un rettangolo
    • ed altre 16 formule matematiche

    usando una sola formula.

    e questo non è possibile.

    Magari, tramite vba è possibile creare un codice unico che ti calcoli le varie formule, ma ogni formula deve avere un codice proprietario, non puoi usare una sola formula per calcolare tutto.

    Quindi se sono 20 formule, avrai bisogno di 20 query diverse e 20 report o maschere diverse.

    Poi magari si potrebbe trovare qualche artefizio per limitare le maschere, invece che 20, magari averne solo una, ma questo significa creare un codice in vba alquanto impegnativo.

  • Re: Query fra record per creare formula

    Uhm… stai mandando tutti fuori pista.

    Tra chi improvvisa logaritmi, chi integrali passando dall'area del cerchio…

    Sono indici, cioè valori messi in rapporto tra di loro.

    Un sito a caso…

    https://www.icribis.com/it/approfondimenti/azienda/indici-di-bilancio#:~:text=COSA%20SONO%20GLI%20INDICI%20DI,patrimoniale%20e%20nel%20conto%20economico.

    Se non conosciamo la struttura dei dati, come ricavi i valori delle voci di bilancio, nessuno potrà dirti come.procedere.

    Domanda: da dove tiri fuori i dati che servono per calcolare gli indici?

  • Re: Query fra record per creare formula

    Voglio semplicemente sapere come fare questa formula, quindi che informazioni devo digitare e dove… 

    oneri sociali /retribuzione lorda

    allego esempio tabella

    descrizioneImporto
    oneri sociali2000000
    retribzione lorda400000
    sdfsdf40000
    dsfdsa20000
    dsfdsfdsfds30000
  • Re: Query fra record per creare formula

    16/08/2023 - Pros78 ha scritto:


    Voglio semplicemente sapere come fare questa formula, quindi che informazioni devo digitare e dove… 

    Mi sembra che ti siano stati forniti degli spunti per fare quello che chiedi : se vuoi essere guidato passo passo (ovvero vuoi la cosiddetta pappa pronta) purtroppo (per te) hai sbagliato forum.

  • Re: Query fra record per creare formula

    16/08/2023 - max.riservo ha scritto:


    16/08/2023 - Pros78 ha scritto:


    Voglio semplicemente sapere come fare questa formula, quindi che informazioni devo digitare e dove… 

    Mi sembra che ti siano stati forniti degli spunti per fare quello che chiedi : se vuoi essere guidato passo passo (ovvero vuoi la cosiddetta pappa pronta) purtroppo (per te) hai sbagliato forum.

    a me sembra che siete un po complicati e filosofi, ma poco concreti. Non sono un programmatore, altrimenti non avrei chiesto e ne sono in grado di interpretare cose da programmatori. Ma grazie uguale

  • Re: Query fra record per creare formula

    16/08/2023 - Pros78 ha scritto:

    a me sembra che siete un po complicati e filosofi, ma poco concreti. Grazie uguale

    A me sembra che tu non abbia compreso lo spirito di questo forum… 

  • Re: Query fra record per creare formula

    16/08/2023 - Pros78 ha scritto:

    a me sembra che siete un po complicati e filosofi, ma poco concreti. Non sono un programmatore, altrimenti non avrei chiesto e ne sono in grado di interpretare cose da programmatori. Ma grazie uguale

    In realtà l'unico problema che esiste è l'ignoranza tecnica di base, che non può essere colmata dal forum, e quando ci si spiega è compito di chiede farsi capire nondi chi da supporto.

    Quindi puoi tranquillamente cercare altrove, dove trovi meno teatralità.

    Grazie

Devi accedere o registrarti per scrivere nel forum
22 risposte