Newsgroup: it.comp.appl.access
Titolo: totale

Come si può ottenere in una query  anche il totale progressivo parziale del 
campo tabella [A] , ovvero da una certa data in poi,  e non di tutto il 
campo [A] ?
Grazie 

 ha scritto nel messaggio
news:c272hi$1qgm2v$1...@ID-155344.news.uni-berlin.de...

Nella Sezione  Queries del Sito Comune (link qui sotto) trovi una FAQ che ti
dice come ottenere un totale progressivo: per ottenere il totale progressivo
solo da una certa data basta che modifichi la funzione pubblicata nella FAQ
di cui sopra filtrando solo i record che desideri.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message 
news:JRE1c.47351$Kc3.1...@twister2.libero.it...



[CUT]
Per prima cosa quando rispondi scrivi DOPO e non prima del testo dei
messaggi precedenti.
Poi certamente quella non è una sintassi giusta; prova con:
rs.Filter = "MiaData >= #01/01/04#"
Naturalmente la costante data deve essere espressa nella forma mm/gg/aaaa e
non gg/mm/aaaa.


 wrote in message 
news:0GH1c.47754$Kc3.1...@twister2.libero.it...

Non va,
 né con data access mese/giorno/anno
 né con data access e pc mese/giorno/anno 

 ha scritto nel messaggio
news:c27jak$1q3dc8$1...@ID-155344.news.uni-berlin.de...

Forse è meglio se posti tutto il codice VBA cge stai usando e ci indichi
anche l'esatta struttura della tabella.
Infice ci dici che risultato vuoi ottenere.



Tabella ID, km, data,      query ID, Data, totale_ km
id : contatore
km:  numerico precisione doppia standard posizioni decimali 2
data: data/ora data estesa
totale_ km: standard posizioni decimali 2
codice suggerito:
query su tabella
totale_km: CDbl(TotProgrQry("ID";[ID];"Km";"Query1"))
modulo:
Option Compare Database
Option Explicit
Function TotProgrQry(KeyName As String, _
KeyValue, FieldNameToGet As String, _
NomeTabella As String) As Double
Dim rs As DAO.Recordset
On Error GoTo Err_TotProgrQry
TotProgrQry = 0
Set rs = CurrentDb().OpenRecordset(NomeTabella, _
dbOpenDynaset)
rs.Filter = "MiaData >= #01/01/04#"
' Trova il record corrente
Select Case rs.Fields(KeyName).Type
    ' La chiave č Numerica?
    Case DB_INTEGER, DB_LONG, DB_CURRENCY, DB_SINGLE, _
        DB_DOUBLE, DB_BYTE
        rs.FindFirst "[" & KeyName & "] = " & KeyValue
    ' La chiave č di tipo Data/ora?
    Case DB_DATE
        rs.FindFirst "[" & KeyName & "] = #" & _
        Format(KeyValue, "mm/dd/yyyy") & "#"
    ' La chiave č di tipo Testo?
    Case DB_TEXT
        rs.FindFirst "[" & KeyName & "] = '" & _
        KeyValue & "'"
    Case Else
        MsgBox "ERRORE: Tipo dati della chiave non valido!"
        Exit Function
   End Select
Do Until rs.BOF
    TotProgrQry = TotProgrQry + rs(FieldNameToGet)
    rs.MovePrevious
Loop
Set rs = Nothing
Bye_TotProgrQry:
    Exit Function
Err_TotProgrQry:
    Resume Bye_TotProgrQry
End Function
I km sono stati fatti in momenti e anni diversi, a me interessa sapere ed 
aggiornare quelli da un certo momento in poi in particolare quelli fatti dal 
primo gennaio 2004.
grazie

= #01/01/2004#
Comunque ti sconsiglio di chiamare Data un tuo campo, č un nome riservato e
potresti trovarti davanti a inspiegabili malfunzionamenti dell'applicativo.


 ---------------------------------------------
Le soluzioni per avere il dato che mi serve possono essere molte:
si può usare la RunningSum o fare due query, come ho fatto.
Ho preferito modificare la funzione,  piuttosto che creare query.
La funzione per la mia esigenza può essere modificata nel seguente modo, 
editando i vari dati:
Set rs = CurrentDb().OpenRecordset("SELECT * FROM <NomeTabella> WHERE 
<NomeCampoData>   >= #<Data># ", dbOpenDynaset)
Grazie