Newsgroup: it.comp.appl.access
Titolo: Funzione complessa

Un saluto a tutti. Ho questo problema :
Ho una tabella che contiene due campi Datadel e valore(numerico)
DEvo popolare una seconda tabella con due campi nei quali deve risultare :
Datarif                 Somma
15/1/2002             la somma di tutti i valori per i quali la
                             datadel e' compresa tra 1/1 e 15/1 2002
31/1/2002            la somma di tutti i valori per i quali la
                             datadel e' compresa tra 1/1 e 31/1 2002
15/2/2002           la somma di tutti i valori per i quali la
                             datadel e' compresa tra 1/1 e 15/2 2002
etc. in pratica calcolare la somma dal primo dell'anno ad ogni quindicina o
fine mese.
Devo ogni volta che lancio la funzione ricreare la tabella daccapo perche'
vengono continuamente inseriti valori riferiti anche a date vecchie.
La tabella poi servira' da base per un grafico.
Mi rendo conto che la cosa e' un po' lunga, ma vi prego di aiutarmi almeno
nei passi principali. Per esempio come faccio da codice a passare alla query
il parametro della data "dal......  al.........". Un grazie affettuoso a
chiunque voglia provare ad aiutarmi ed un saluto a tutti.


L'esempio si basa su una tabella di nome 'tabella1', con due campi:
datadel -> Data
valore -> Numerico
Crea una nuova query, vai in visualizzazione sql e il testo che
segue:
SELECT IIf(Day([datadel])>=1 And
Day([datadel])<=15,DateSerial(Year([datadel]),Month([datadel]),15),DateSerial(Year([datadel]),Month([datadel])+1,0))
AS Periodo, Sum(tabella1.valore) AS Totale INTO tabella2
FROM tabella1
WHERE (((tabella1.datadel)>=[DataInizio] And
(tabella1.datadel)<=[DataFine]))
GROUP BY IIf(Day([datadel])>=1 And
Day([datadel])<=15,DateSerial(Year([datadel]),Month([datadel]),15),DateSerial(Year([datadel]),Month([datadel])+1,0))
ORDER BY IIf(Day([datadel])>=1 And
Day([datadel])<=15,DateSerial(Year([datadel]),Month([datadel]),15),DateSerial(Year([datadel]),Month([datadel])+1,0));
la query, ti chiede due paramentri: DataInizio e DataFine, e crea una
tabella come serve a te;
se la tabella esiste viene sovrascritta.
Per quanto riguarda la seconda richiesta, cerca sul sito comune la
faq:
'Aprire una query parametrica da codice VBA'
bye
-- 
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------

 ha scritto nel messaggio
news:3DC78A31...@sitocomune.com...
AAARRRGGGHHHH !!!!
UN FANTASMA!!!!
Antonio



puoi fare una sola query raggruppando di 15 giorni in 15 giorni e
mettendo ndel cambo totale un dsum() od un select con criterio data
minore uguale a quella raggruppata.
Saluti.
Emanuele.

 bye
OPS....!
Il Sito Comune....??? Ma allora c'è ancora.....!!!
Ciao Federico, ben risentito....!
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Va bene grazie, solo una cosa il campo somma in corrispondenza delle date
deve sempre avere la somma progressiva e non la somma della sola
quindicina,come modifico la query??? Di nuovo grazie e ciao

 ha scritto nel messaggio
news:gfoesuos6umkgo91q...@4ax.com...

Ti ringrazio e provo a mettere in pratica quanto mi hai scritto

 quindicina,come modifico la query??? Di nuovo grazie e ciao
solo!!!
non credo si possa fare con la sola query (spero qualcuno mi
smentisca),
forse conviene scrivere una funzioncina...
ci devo pensare


 ci devo pensare
Federicuccio... e pensare anche a quando eri capace di sfoltire un post per
dare una semplice rispostina?!?!
Antonio


:-)


 ha scritto nel messaggio
news:gfoesuos6umkgo91q...@4ax.com...

Ho provato ma ho dei problemi a scrivere nei criteri il campo su cui
raggruppo
a causa di " e #. Mi puoi aiutare. ???

 ha scritto nel messaggio
news:cKyx9.115169$%M1.29...@twister2.libero.it...

Se la tabella che contiene i dati si chiama Tabella1 ed ha una struttura
simile a questa:
ID            Contatore e chiave primaria
Datadel    Data/ora
Importo    Valuta
ecc. ecc.
Se la tabella che deve ricevere i dati per il grafico si chiama Tabella2 ed
ha la seguente struttura:
Periodo        Data/ora
Totale           Valuta
prova con una query di creazione tabella che abbia il seguente codice SQL:
SELECT IIf(Day([Datadel])>=1 And
Day([Datadel])<=15,DateSerial(Year([Datadel]),Month([Datadel]),15),DateSeria
l(Year([Datadel]),Month([Datadel])+1,0)) AS Periodo,
CCur(DSum("Importo","Tabella1","Datadel>=#" & Format(CDate([Digita data
Inizio (gg/mm/aaaa):]),"mm/dd/yyyy") & "# And Datadel <=#" &
Format([Periodo],"mm/dd/yyyy") & "#")) AS Totale INTO Tabella2
FROM Tabella1
WHERE (((Tabella1.Datadel) Between [Digita data Inizio (gg/mm/aaaa):] And
[Digita data Fine (gg/mm/aaaa):]))
GROUP BY IIf(Day([Datadel])>=1 And
Day([Datadel])<=15,DateSerial(Year([Datadel]),Month([Datadel]),15),DateSeria
l(Year([Datadel]),Month([Datadel])+1,0));
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Va benissimo, ho solo dovuto fare qualche ritocco perche' il mio campo
valore non e' di tipo valuta , ma la query e' perfetta come al solito.
Ti ringrazio molto, sto imparando un sacco di cose grazie alle tue
soluzioni.