"traduzione" SQL in espressione origine dati

di il
10 risposte

"traduzione" SQL in espressione origine dati

Salve a tutti,

avrei bisogno di un aiuto per "tradurre" il codice SQL che ho generato dalla mia query in un'espressione per l'origine controllo di una casella di testo di una maschera, il codice è il seguente :

SELECT Allenamento.id_Atleta, AllenamentoDettagli.Data, AllenamentoEsercizi.PesoLavoro
FROM (Allenamento INNER JOIN AllenamentoDettagli ON Allenamento.ID_Allenamento = AllenamentoDettagli.id_Allenamento) INNER JOIN AllenamentoEsercizi ON AllenamentoDettagli.ID_AllenamentoDettagli = AllenamentoEsercizi.id_AllenamentoDettagli
GROUP BY Allenamento.id_Atleta, AllenamentoDettagli.Data, AllenamentoEsercizi.PesoLavoro
HAVING (((Allenamento.id_Atleta)=13) AND ((AllenamentoDettagli.Data)>=#1/1/2022# And (AllenamentoDettagli.Data)<=#3/30/2022#));

Sono riuscito a scrivere solo un parziale della formula che vi riporto di seguito (funzionante) ma ho bisogno che il criterio, oltre a verifcare id_Atleta, sommi solo i record tra 2 date presenti nella maschera originale

=DSum("PesoLavoro";"TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta])

[txtIdAtleta] equivale al numero "13" nel codice SQL mentre le 2 date che dovrei aggiungere nei criteri della funzione DSum sono: txtDataInizio (1/1/2022 in SQL) e txtDataFinale (3/30/2022)

Grazie in anticipo

10 Risposte

  • Re: "traduzione" SQL in espressione origine dati

    Perché ti complichi la vita....?
    Fai una query e metti come origine il campo della query con il dlookup o una funzione... quello che stai tentando è assurdo.
  • Re: "traduzione" SQL in espressione origine dati

    Ciao,
    Il risultato che necessito è la somma di un campo calcolato che si ripete in ogni scheda, questa funzione deve darmi la somma di tutti i "pesi" di un determinato "atleta" in un intervallo di date. Riesco a fare tutto questo tramite query e riesco a trasportarlo nella funzione che mi da la somma da me cercata ma in questo caso riesco a fare la selezione soltanto per atleta perche' non so come correlare nei criteri l'intervallo di date. Ho provato a scrivere cosi' ma mi da errore

    =DSum("PesoLavoro";"TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta] "And Data between " & [txtDataInizio] & " And "& [txtDataFinale])

    il codice che funziona è solo parziale ed e':

    =DSum("PesoLavoro";"TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta])
  • Re: "traduzione" SQL in espressione origine dati

    Le date vanno passate in accezione anglosassone oppure usando clng(...)
  • Re: "traduzione" SQL in espressione origine dati

    Ho scritto cosi' ma mi da restituisce un errore di sintassi

    =DSum("PesoLavoro";"TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta] "And Data between " & Format([txtDataInizio]; "MM/dd/yyyy") & " And " & Format([txtDataFinale]; "MM/dd/yyyy"))
  • Re: "traduzione" SQL in espressione origine dati

    Ci sono un pò di errori.
    Io la scriverei cosi:
    DSum("PesoLavoro"; "TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta] & " And Data between #" & Format([txtDataInizio]; "MM/dd/yyyy") & "# And #" & Format([txtDataFinale]; "MM/dd/yyyy") & "#")
  • Re: "traduzione" SQL in espressione origine dati

    Grazie eddy il codice non mi da errore di sintassi però non funziona lo stesso.

    Ricapitolo il problema: Ho creato una maschera chiamata "Allenamento" e 2 sottomaschere chiamate "AllenamentoDettagli" e "AllenamentoEsercizi" ovviamente l'una correlata all'altra. in "Allenamento" è presente l'ID_Atleta e a questa è correlata la maschera "AllenamentoDettagli" nella quale sono presenti le date dei vari allenamenti e dei filtri per data che mi restituiscono gli esercizi nell'intervallo di date da me scelto. Selezionando quindi una data tra quelle presenti ci si sposta nella seconda sottomaschera "AllenamentoEsercizi" nella quale ci sono tutti i record relativi all'allenamento come ad esempio l'"esercizio", "numero di serie", "Ripetizioni", "Peso", ecc... Per ogni giorno di allenamento ho poi un record dove viene salvato il Tonnellaggio, cioè la somma di tutti i pesi sollevati in quel giorno di allenamento. Adesso ho necessità di ampliare questo "Tonnellaggio" e avere una casella di testo nella sottomaschera "AllenamentoDettagli" (quella con le date) che mi restituisca il tonnellaggio totale dell'atleta selezionato nell'intervallo di date scelto. Ho creato una query che ho chiamato "TonnellagioTotale" nella quale ho inserito "id_Atleta" , la "Data" e il "PesoLavoro" e da li riesco ad ottenere quello di cui ho bisogno, mi basta impostare nei criteri l'id dell'atleta e l'intervallo di date e ottengo la somma da me voluta. Da questa query ho estrapolato il codice SQL (ovviamente ho inserito 2 date a caso):

    SELECT Allenamento.id_Atleta, AllenamentoDettagli.Data, AllenamentoEsercizi.PesoLavoro
    FROM (Allenamento INNER JOIN AllenamentoDettagli ON Allenamento.ID_Allenamento = AllenamentoDettagli.id_Allenamento) INNER JOIN AllenamentoEsercizi ON AllenamentoDettagli.ID_AllenamentoDettagli = AllenamentoEsercizi.id_AllenamentoDettagli
    GROUP BY Allenamento.id_Atleta, AllenamentoDettagli.Data, AllenamentoEsercizi.PesoLavoro
    HAVING (((Allenamento.id_Atleta)=13) AND ((AllenamentoDettagli.Data)>=#1/1/2022# And (AllenamentoDettagli.Data)<=#3/30/2022#));

    Avrei bisogno di riportare questo codice come funzione DSum, se come criterio mi limito a selezionare l'ID_Atleta, tutto funziona alla perfezione (=DSum("PesoLavoro";"TonnellaggioTotale";"id_Atleta=" & [txtIdAtleta])
    ma se considero le date non funziona più. L'intervallo di date è quello che imposto nel filtro i cui valori sono inseriti nelle due caselle di testo txtDataInizio e txtDataFinale.

    Ho cercato di essere il più chiaro possibile, grazie a chi proverà a darmi una mano.
  • Re: "traduzione" SQL in espressione origine dati

    Insomma perché hai ricapitolato... si era capito tutto ti sono state date indicazioni ora mettiti di buon impegno e cerca dincapire NESSUNO TI FORNIRÀ PAPPA PRONTA.
  • Re: "traduzione" SQL in espressione origine dati

    Il codice che mi ha scritto Eddy non funziona purtoppo, grazie lo stesso Alex, sei stato gentilissimo
  • Re: "traduzione" SQL in espressione origine dati

    Mi sono limitato a correggere soltanto gli errori di sintassi. Il fatto che sia funzionale al contesto questo lo puoi stabilire soltanto tu.
  • Re: "traduzione" SQL in espressione origine dati

    eddy1973 ha scritto:


    Mi sono limitato a correggere soltanto gli errori di sintassi. Il fatto che sia funzionale al contesto questo lo puoi stabilire soltanto tu.
    Grazie per l'aiuto
Devi accedere o registrarti per scrivere nel forum
10 risposte